拼接一个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)
却什么结果都没有了,不提示错误也不打印语句更查不出结果...........
应该怎么写呢?
@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
不可以么?