Sql Server 2005 存储过程 求救

m20058259 2011-09-22 10:00:11
create proc test
@filter varchar(500),
@b int output
as
declare @s_sql nvarchar(max)
set @s_sql= 'select count(distinct b.id) as num into @tempcount from ' +@filter ' '
set @b=(select num from @tempcount)
exec(@s_sql)
go


消息 102,级别 15,状态 1,过程 test,第 6 行
' ' 附近有语法错误。
消息 1087,级别 15,状态 2,过程 test,第 7 行
必须声明表变量 "@tempcount"。
...全文
51 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-09-22
  • 打赏
  • 举报
回复
create proc test
@filter varchar(500),
@b int output
as
declare @s_sql nvarchar(max)
set @s_sql= 'select @count=count(distinct b.id) from ' +@filter+ ''
exec sp_executesql @s_sql,N'@count int output',@b output
go
m20058259 2011-09-22
  • 打赏
  • 举报
回复
谢谢大家帮忙。
AcHerat 2011-09-22
  • 打赏
  • 举报
回复

create proc test
@filter varchar(500),
@b int output
as
declare @s_sql nvarchar(max)
set @s_sql= 'select @count=count(distinct b.id) from ' +@filter+ ''
exec sp_executesql @s_sql,N'@count int output',@b output
go
-晴天 2011-09-22
  • 打赏
  • 举报
回复
try:
create proc test
@filter varchar(500),
@b int output
as
declare @s_sql nvarchar(max)
set @s_sql= 'select @tempcount=count(distinct id) from ' +@filter

exec SP_EXECUTESQL @s_sql,N'@b int output ',@b output

go
唐诗三百首 2011-09-22
  • 打赏
  • 举报
回复
虽然我太清楚楼主这个SP要做什么,只能保证语法正确了.
AcHerat 2011-09-22
  • 打赏
  • 举报
回复
create proc test
@filter varchar(500),
@b int output
as
declare @s_sql nvarchar(max)
set @s_sql= 'select @count=count(distinct b.id) as num from ' +@filter+ ''
exec sp_executesql @s_sql,N'@count int output',@b output
go
唐诗三百首 2011-09-22
  • 打赏
  • 举报
回复

create proc test
@filter varchar(500),
@b int output
as
declare @s_sql nvarchar(max)
set @s_sql= 'select count(distinct b.id) as num into @tempcount from ' + @filter +' '
set @b=@s_sql+ ' select num from @tempcount) '
exec(@s_sql)
go
-晴天 2011-09-22
  • 打赏
  • 举报
回复
错误百出.

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧