本文介紹了將執行 UPDATE 的 CURSOR 轉換為 CTE的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我熟悉 CURSOR,但沒有 CTE 的經驗,也從未真正使用過它們,但我被告知它們是比 CURSOR 更好的選擇
I am familiar with CURSORS, but have no experience of CTE's and have never really used them but have been advised that they are a better option than CURSOR's
為了嘗試理解 CTE 的邏輯,我編寫了以下 CURSOR,我希望將其轉換為 CTE.有人可以幫我嗎?
To try and understand the logic of CTE's, I have written the following CURSOR which I hope to convert to a CTE. Can somebody help me?
DECLARE @CustomerID UNIQUEIDENTIFIER
DECLARE SalesOrderCursor CURSOR READ_ONLY
FOR
SELECT CustomerID FROM OrdersProcessed
OPEN SalesOrderCursor
FETCH NEXT FROM SalesOrderCursor INTO @CustomerID
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE CustomerOrderStatus SET Shipped = 1 WHERE CustomerID = @CustomerID
END
FETCH NEXT FROM SalesOrderCursor INTO @CustomerID
END
推薦答案
我會用下面的命令
UPDATE CustomerOrderStatus
SET Shipped = 1
WHERE CustomerID IN
(
SELECT CustomerID FROM OrdersProcessed
)
這篇關于將執行 UPDATE 的 CURSOR 轉換為 CTE的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!