想看一个有游标的存储过程该动态执行的例子

yahoo402 2004-11-03 04:06:02
编了一个存储过程,由于开始写得不好,存储过程中用到的表名应该用参数传入的,根据月份来写
而现在写死了,例如
select XX,xxx,xxxx from aaa_200411
where xxxx
这种,还有一些中间的赋值也需要适用年月这个参数,比如
set @abc = '2004110'
现在只想改写一下,能将这个年月从参数传入.但是不知道如何在游标中改写,盼大家给一个例子
谢谢!
...全文
163 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pbsql 2004-11-03
  • 打赏
  • 举报
回复
完整的例子:
declare @LastName varchar(8000),@tb varchar(100)
set @tb='Northwind.dbo.Employees'
exec('
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName FROM '+@tb)
OPEN Employee_Cursor
FETCH NEXT FROM Employee_Cursor into @LastName
WHILE @@FETCH_STATUS = 0
BEGIN
print @LastName
FETCH NEXT FROM Employee_Cursor into @LastName
END
CLOSE Employee_Cursor
DEALLOCATE Employee_Cursor
yahoo402 2004-11-03
  • 打赏
  • 举报
回复
有点懂了,但是还是想看个完整的例子...
里面怎么写的,外面怎么调用的,都不是很懂
先谢过楼上的达人:)
pbsql 2004-11-03
  • 打赏
  • 举报
回复
...
set @abc = '2004110'
exec('declare cursor1 cursor for select xx,xxx,xxxx from '+@abc)
open cursor1
...

34,590

社区成员

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

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