拼接一个SQL 语句在存储过程中执行报错

来源:百度知道 编辑:UC知道 时间:2024/07/02 01:39:27
declare
@SelStr varchar(400)
,@ID varchar(20)
,@CatchSignId varchar(50)

set @CatchSignId='aid'
set @SelStr='Select @ID='+@CatchSignId+' from aaa '

print @SelStr
exec(@SelStr)
------------------------
服务器: 消息 137,级别 15,状态 1,行 1
必须声明变量 '@ID'。

问题: 我声明@ID了,为什么还提示呢?

==============================如果改成了=============================
declare
@SelStr varchar(400)
,@ID varchar(20)
,@CatchSignId varchar(50)

set @CatchSignId='aid'

set @SelStr='Select '+@ID+'='+@CatchSignId+' from aaa '

print @SelStr
exec(@SelStr)

却什么结果都没有了,不提示错误也不打印语句更查不出结果...........

应该怎么写呢?

应该这样写:

declare
@SelStr varchar(400)
,@CatchSignId varchar(50)

set @CatchSignId='aid'

set @SelStr='declare @ID varchar(20) Select @ID='+@CatchSignId+' from aaa '

print @SelStr
exec(@SelStr)

改成多条声明呀!

试试看嘛!

Declare @SelStr varchar(400)

Declare @ID varchar(20)

.....

set @SelStr='Select '+@ID+'='+@CatchSignId+' from aaa '

这句话咋回事?

@SelStr @ID,@CatchSignId form aaa

不可以么?