create proc proc_manager
@tablename varchar,
@strWhere varchar,
@count int output
as
begin
declare @strSql nvarchar(1000)
set @strSql='select @count=count(1) from '+@tablename+' where '+@strWhere
end
exec sp_executesql @strSql,N'@count int output',@count output
drop proc proc_manager
declare @sum int
exec proc_manager 'ask','id>0',@sum output
print @sum
错误:
消息 4145,级别 15,状态 1,第 1 行
在应使用条件的上下文(在 'i' 附近)中指定了非布尔类型的表达式。
1 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
你把
exec sp_executesql @strSql,N'@count int output',@count output
替换为 print @strSql 看看输出什么,是不是拼接的字符串不对,错误提示说where后面应该是逻辑表达式,但是解析不对,所以我估计是字符串的拼接问题
- 1 回答
- 0 关注
- 411 浏览
添加回答
举报
0/150
提交
取消