编了一个存储过程,由于开始写得不好,存储过程中用到的表名应该用参数传入的,根据月份来写
而现在写死了,例如
select XX,xxx,xxxx from aaa_200411
where xxxx
这种,还有一些中间的赋值也需要适用年月这个参数,比如
set @abc = '2004110'
现在只想改写一下,能将这个年月从参数传入.但是不知道如何在游标中改写,盼大家给一个例子
谢谢!
...全文
1633打赏收藏
想看一个有游标的存储过程该动态执行的例子
编了一个存储过程,由于开始写得不好,存储过程中用到的表名应该用参数传入的,根据月份来写 而现在写死了,例如 select XX,xxx,xxxx from aaa_200411 where xxxx 这种,还有一些中间的赋值也需要适用年月这个参数,比如 set @abc = '2004110' 现在只想改写一下,能将这个年月从参数传入.但是不知道如何在游标中改写,盼大家给一个例子 谢谢!
完整的例子:
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