Sql server TSQL更改游标定义
我用的是光标Sql server TSQL更改游标定义,sql-server,tsql,cursor,Sql Server,Tsql,Cursor,我用的是光标 DECLARE @column1 NVARCHAR(MAX); DECLARE cursor_name CURSOR FOR SELECT c1 FROM table_name; OPEN cursor_name; FETCH cursor_name INTO @column1; WHILE @@FETCH_STATUS = 0 BEGIN FETCH cursor_name INTO @column1; END CLOSE cursor_na
DECLARE @column1 NVARCHAR(MAX);
DECLARE cursor_name CURSOR FOR
SELECT c1
FROM table_name;
OPEN cursor_name;
FETCH cursor_name INTO @column1;
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH cursor_name INTO @column1;
END
CLOSE cursor_name;
DEALLOCATE cursor_name;
现在我的问题是,我可以在使用光标后更改光标的定义吗?我的意思类似于:
DECLARE cursor_name CURSOR FOR
SELECT c2
FROM table_name2;
使用相同的游标名称游标名称
,但定义已更改。
如果这是可能的,如何做到这一点
谢谢。避免讨论光标是否必要,从纯技术角度来看,一旦光标关闭并解除分配,您可以再次自由地重新使用该名称。,但必须在您解除分配之后。你有没有试过这个但不起作用 你可能还想看看你是否真的需要一个光标。它们损害了性能,使用它们的SQL通常可以在没有它们的情况下重写 看一看如何做。他们使用不太常见的DECLARE/SET语法来声明游标(至少在我的世界中是不常见的)。以下是他们提供的示例:
USE pubs
GO
DECLARE @MyCursor CURSOR
SET @MyCursor = CURSOR LOCAL SCROLL FOR
SELECT * FROM titles
DEALLOCATE @MyCursor
SET @MyCursor = CURSOR LOCAL SCROLL FOR
SELECT * FROM sales
GO