【发布时间】:2016-12-09 14:32:05
【问题描述】:
如何在一个查询中使用声明参数、WITH子句和游标
declare @TOP10 table (Cat Nvarchar(max),SubGUID uniqueidentifier)
declare @Sub uniqueidentifier
declare GUID_Cursor cursor FOR
(select SubGUID from dbo.Sub with(nolock) where year=2016)
;
with [MyTable] as
(
Select SubGUID, color from dbo.Cars with(nolock) where color ='blue'
)
open GUID_Cursor
fetch next from GUID_Cursor into @Sub
while @@FETCH_STATUS=0
begin
insert into @TOP10 (Cat,SubGUID)
select color,SubGUID from [MyTable]
where SubGUID=@Sub
fetch next from GUID_Cursor into @Sub
end
close GUID_Cursor
deallocate GUID_Cursor
select * from @TOP10
我只是找不到在使用 WITH 子句后打开光标的方法。
谁能帮帮我?
【问题讨论】:
-
CTE 只是一个子查询。这样重写它应该会有所帮助。
-
不应该是
declare cursor for之后的with子句?
标签: sql sql-server tsql common-table-expression