存储游标获得数据集问题 (急) 请高手指点

earthgoshawk 2005-11-02 08:33:47
将表明作为参数,检查语法 在 Exec( @SQL ) 有错误。
用其他方法实现 动态表明也可以 请指点


create procedure prepeatcheck
@TableName varchar(20)
as

declare @name varchar(64),@SQL nvarchar(64),@count int ,
@name1 varchar(64)
--创建临时表

--================声明游标
set @SQL =N'select name,count(id) as count from '+@TableName+' group by name having count(id)>1 '
DECLARE cur_repeat CURSOR FOR
Exec( @SQL )
--打开游标
Open cur_repeat
Fetch Next FROM cur_repeat
INTO @name,@count
WHILE @@FETCH_STATUS=0
BEGIN
----
print('')
END
CLOSE cur_repeat
--销毁游标
DEALLOCATE cur_repeat
...全文
98 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlp321002 2005-11-02
  • 打赏
  • 举报
回复
DECLARE cur_repeat CURSOR FOR
Exec( @SQL )
------------->
没有得到返回值啊!

N'select @name=name,@count=count(id) as count from '+@TableName+' group by name having count(id)>1 '
exec sp_executesql @sql,N'@count int output,@name varchar(10) output',@count output,@name output


wgsasd311 2005-11-02
  • 打赏
  • 举报
回复
set @SQL =N'select name,count(id) as count from '+@TableName+' group by name having count(id)>1 '
DECLARE cur_repeat CURSOR FOR
Exec( @SQL )
=====>
set @SQL =N'select name,count(id) as count from '+@TableName+' group by name having count(id)>1 '
Exec('DECLARE cur_repeat CURSOR FOR '+ @SQL )

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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