USE [SapAllData]
GO
CREATE PROCEDURE [dbo].[PK_Test]
AS
--声明1个变量
declare @O_company nvarchar(20)
--声明一个游标mycursor,select语句中参数的个数必须要和从游标取出的变量名相同
declare mycursor cursor for select dbname from SapAllData..company
--打开游标
open mycursor
--从游标里取出数据赋值到我们刚才声明的2个变量中
fetch next from mycursor into @O_company
--判断游标的状态
-- 0 fetch语句成功
---1 fetch语句失败或此行不在结果集中
---2 被提取的行不存在
while (@@fetch_status=0)
--select
--'''+@O_company+''' as 公司 ,
--code 结算期间,
--case when periodstat=''C'' then ''结算期间''
--when periodstat=''Y'' then ''已锁定'' else ''已解锁'' end 状态
--from '+' ' +@O_company+'..[ofpr] where T_RefDate <=@time
begin
--显示出我们每次用游标取出的值
--print 'union all'
print '
insert into '+' ' +@O_company+'..otrc
select * from beijingywwl..otrc where trnscode=''TCS1''
'
--用游标去取下一条记录
fetch next from mycursor into @O_company
end
--关闭游标
close mycursor
--撤销游标
DEALLOCATE mycursor
GO
sqlserver 创建游标for循环
最新推荐文章于 2024-11-26 14:33:05 发布
本文通过一个具体的T-SQL示例,展示了如何使用游标遍历数据,并结合动态SQL来执行特定操作。该过程包括声明游标、打开和关闭游标,以及根据游标返回的数据执行插入操作。
2176

被折叠的 条评论
为什么被折叠?



