T-SQL 游标
游标
关系数据库中的操作会对整个行集产生影响。由 SELECT 语句返回的行集包括所有满足该语句 WHERE 子句中条件的行。由语句所返回的这一完整的行集被称为结果集。应用程序,特别是交互式联机应用程序,并不总能将整个结果集作为一个单元来有效地处理。这些应用程序需要一种机制以便每次处理一行或一部分行。游标就是提供这种机制的结果集扩展。
示例:
代码
declare @DocID char(32)
declare @UserRights varchar(8000)
declare mycursor cursor --定义游标变量
for select DocID,UserRights from dbo.DocIndex_SMCCOA06--从数据表中取出需要的数据集
open mycursor--打开游标
fetch next from mycursor into @DocID,@UserRights--读取游标数据
WHILE ( @@FETCH_STATUS = 0 )
begin
INSERT INTO [dbo].[DocIndex_Rights]
([UserID]
,[DocID])
select short_str,@DocID from dbo.split(@UserRights,'|')
fetch next from mycursor into @DocID,@UserRights
end
close mycursor--关闭游标
DEALLOCATE mycursor--销毁游标
go
declare @UserRights varchar(8000)
declare mycursor cursor --定义游标变量
for select DocID,UserRights from dbo.DocIndex_SMCCOA06--从数据表中取出需要的数据集
open mycursor--打开游标
fetch next from mycursor into @DocID,@UserRights--读取游标数据
WHILE ( @@FETCH_STATUS = 0 )
begin
INSERT INTO [dbo].[DocIndex_Rights]
([UserID]
,[DocID])
select short_str,@DocID from dbo.split(@UserRights,'|')
fetch next from mycursor into @DocID,@UserRights
end
close mycursor--关闭游标
DEALLOCATE mycursor--销毁游标
go


浙公网安备 33010602011771号