拼sql
declare @flag1 varchar(1000),
declare @fkc varchar(10) 在这里赋值 set @flag1='
select '''+@fkc+'''=objjc from '+@dbname+'..WFPCODE_AD504 where objname=''负库存是否显示''
'然后下面根据@fkc的值进行判断if @fkc=1
begin
set @sql=@sql+''
end
else
begin
set @sql=@sql+' 省略 '
end但是@fkc 始终是null
怎么办
declare @flag1 varchar(1000),
declare @fkc varchar(10) 在这里赋值 set @flag1='
select '''+@fkc+'''=objjc from '+@dbname+'..WFPCODE_AD504 where objname=''负库存是否显示''
'然后下面根据@fkc的值进行判断if @fkc=1
begin
set @sql=@sql+''
end
else
begin
set @sql=@sql+' 省略 '
end但是@fkc 始终是null
怎么办
declare @flag1 nvarchar(1000),
declare @fkc varchar(10) --在这里赋值
set @flag1=N'select @fkc=objjc from '+@dbname+'..WFPCODE_AD504 where objname=''负库存是否显示'''exec sp_executesql @flag1,'@fkc varchar(10) output',@fkc output--你的判断语句
declare @flag1 nvarchar(1000),
declare @fkc nvarchar(10) set @flag1='
select @fkc=objjc from '+@dbname+'..WFPCODE_AD504 where objname=''负库存是否显示''
'
exec sp_executesql @flag1,N'@fkc nvarchar(10) output',@fkc outputselect @fkc
输出参数
declare @num int, @sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls) --如何将exec执行结果放入变量中? declare @num int, @sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num
进一步可以将赋值语句的字符串前加一个N:
set @flag1=N'
select @fkc=objjc from '+@dbname+'..WFPCODE_AD504 where objname=''负库存是否显示''
'
declare @fkc varchar(10)
exec sp_executesql N'select @fkcout=objjc from '+@dbname+N'..WFPCODE_AD504 where objname=''负库存是否显示''',N'@fkcout varchar(10) output',@fckout=@fkc output
print @fkcout
然后
set @fkc=''
null和任何字符串相加都是null