declare @ddd varchar(12)
declare @sss varchar(50)
set @ddd='a'
set @sss='select @ddd'
exec(@sss)
如何将参数 @ddd的值传给@sss
declare @sss varchar(50)
set @ddd='a'
set @sss='select @ddd'
exec(@sss)
如何将参数 @ddd的值传给@sss
调试欢乐多
declare @sss varchar(50)
set @ddd='a'SELECT @sss=@dddSELECT @sss
(@ddd varchar(12)=''
)
as declare @sss varchar(50)
set @sss='select *from table1 where cname=@ddd'
exec(@sss)
(@ddd varchar(12)=''
)
as
declare @sss varchar(50)
set @sss='select *from table1 where cname='''+@ddd+''''
exec(@sss)go
declare @sss varchar(50)
set @ddd='a'
set @sss='select * from tablename where contition='+ @ddd
exec(@sss)
那么那语句就是select * from table where cname='ace'
所以
set @sss='select *from table1 where cname='''+@ddd+''''
在cname 后面第一个单引号是转义符,意识说在它后面的单引号以字符串形式输出,后面的那个引号是字符串结束引号。同理@ddd后面的第一个是字符串开始符,第二个是转义,第三个是引号字符串,第四个是字符换结束符