一个简单的动态Sql问题
动态sql代码如下:
declare @sel nvarchar(1000)
declare @count int
declare @kind varchar(20)
select @kind= '财政性 '
set @sel= 'select @count=count(*)
from table
where kind= " '+@kind+ ' " '
EXEC sp_executesql @sel,N '@count int OUTPUT,@kind varchar(20) ',@count OUTPUT,@kind
运行是错误如下:
服务器: 消息 207,级别 16,状态 3,行 1
列名 '财政性 ' 无效。
请问我错在哪里了?请帮我改正。
select @sel
select @count
[解决办法]
"换成 ' '
declare @sel nvarchar(1000)
declare @count int
declare @kind varchar(20)
select @kind= '财政性 '
set @sel= 'select @count=count(*)
from table
where kind= ' ' '+@kind+ ' ' ' '
EXEC sp_executesql @sel,N '@count int OUTPUT,@kind varchar(20) ',@count OUTPUT,@kind
select @sel
select @count
[解决办法]
--try
declare @sel nvarchar(1000)
declare @count int
declare @kind varchar(20)
select @kind= '财政性 '
set @sel= 'select @count=count(*)
from table
where kind= ' ' '+@kind+ ' ' ' '
EXEC sp_executesql @sel,N '@count int OUTPUT ',@count OUTPUT