sp_executesql期待声明......好吧,我把它给它

Dan*_*Sh. 1 sql-server

我遇到了这个程序的问题.这是代码

declare @sql nvarchar(4000)
set @sql =  N'SELECT @resp2 = count(*) from '+ @NameTable + ' where datum = ''1'' or datum = ''2''    '
    EXEC sp_executesql
    @query = @sql,
    @params = N'@resp2 INT OUTPUT', 
    @resp2 = @resp2 OUTPUT 
Run Code Online (Sandbox Code Playgroud)

"程序需要'ntext/nchar/nvarchar'类型的参数'@statement'."

我没有发表声明吗?(@sql)

我想要做的就是在执行中为@ resp2设置一个值.

And*_*y M 5

根据手册,您应该为所调用的参数提供一个值@statement,但是您将其提供为@query.

所以它应该是:

declare @sql nvarchar(4000)
set @sql =  N'SELECT @resp2 = count(*) from '+ @NameTable + ' where datum = ''1'' or datum = ''2''    '
EXEC sp_executesql
@statement = @sql,
@params = N'@resp2 INT OUTPUT', 
@resp2 = @resp2 OUTPUT 
Run Code Online (Sandbox Code Playgroud)

只需按照手册,你就可以了.