首页 新闻 会员 周边 捐助

存储过程 的错误 谁来帮帮我 看看哪错了

0
悬赏园豆:20 [已解决问题] 解决于 2012-11-14 08:27
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' 附近)中指定了非布尔类型的表达式。
Demon Edge的主页 Demon Edge | 初学一级 | 园豆:36
提问于:2012-11-13 23:43
< >
分享
最佳答案
0

你把

exec sp_executesql @strSql,N'@count int output',@count output
替换为 print @strSql 看看输出什么,是不是拼接的字符串不对,错误提示说where后面应该是逻辑表达式,但是解析不对,所以我估计是字符串的拼接问题
收获园豆:20
飞来飞去 | 老鸟四级 |园豆:2057 | 2012-11-14 01:19

Demon Edge | 园豆:36 (初学一级) | 2012-11-14 08:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册