我可以使用變量來聲明遊標嗎?t-sql動態遊標
我想創建動態遊標,我該怎麼做?
問候
我有表: CREATE TABLE [UsersUniTask]( [ID]唯一標識符約束[DF_UsersUniTask_id] DEFAULT NEWID()NOT NULL, [userUniID]唯一標識符NOT NULL, [TASKID]詮釋NOT NULL, [時間]日期時間NOT NULL, [doTask]詮釋NOT NULL, [優先]詮釋NOT NULL, 約束[PK_UsersUniTask] PRIMARY KEY CLUSTERED([ID]), 約束[FK_UsersUniTask_UsersUni]外鍵([userUniID ]) REFERENCES [UsersUni]([id]) ON UPDATE NO ACTION ON DELETE CASCADE ) ON [PRIMARY] GO
我有遊標的重複性過程,並且我得到一個遊標存在的錯誤,我想創建動態遊標。我必須創建遊標的動態名稱,這是唯一的。我想要這樣做: 聲明@CursorName nvarchar(500) set @CursorName ='AddTaskCursor'; DECLARE @CursorName CURSOR FAST_FORWARD READ_ONLY FOR ... 但是這樣我不能:( – dzajdol 2010-08-25 08:24:46
不能,你不能動態地聲明一個遊標的名字,你只能動態地定義遊標的參數,如果你在遊標運行後沒有關閉遊標,添加「DEALLOCATE 。CursorName中」您的CLOSE語句後 – Boerema 2010-08-25 08:31:16
我的光標看起來像這樣: DECLARE AddTaskCursor CURSOR FAST_FORWARD READ_ONLY FOR(選擇ID,userUniID,任務id,doTask,優先從@Tasks) 打開AddTaskCursor \t --TODOZROBIĆWYWOŁANIEPROCEDURY - 在這個地方,我用這個遊標執行過程是 - 並且這個過程不能聲明遊標名稱在使用中 關閉AddTaskCursor; DEALLOCATE AddTaskCursor; 正如你看到有我的問題,關閉和釋放 – dzajdol 2010-08-25 08:45:30