[英]I updated the temporary table and it updated the original table MSSQL Server
我運行此查詢來更新臨時表CTE_Companies
,並更新了原始的Companies
表。 我現在應該怎么辦 :(
with CTE_Companies
(ZIP)
As
(
Select ZIP from Companies
)
Update CTE_Companies
set CTE_Companies.ZIP= '0'+CTE_Companies.ZIP
where len(CTE_Companies.ZIP) = 4
common-table-expression不是臨時表。 它更像是對一個或多個表的子查詢。 如果從單個表中選擇,則將更新此表。
這是設計使然,非常有用,因為您可以更改“ Update
/ Delete
以輕松進行“ Select
以查看要更改或刪除的內容。 因此,您應該在CTE
包括Where
條件。
沒有基礎表就無法更新表表達式。 使用臨時表。
BEGIN TRAN
WITH CTE_Companies
(ZIP)
As
(
Select ZIP from Companies
)
Update CTE_Companies
set CTE_Companies.ZIP= SUBSTRING (1, CTE_Companies.ZIP, LEN(CTE_Companies.ZIP) - 1)
where
len(CTE_Companies.ZIP) = 5
and CTE_Companies.ZIP LIKE '0%'
-- check if your data is ok and then change the next line to COMMIT TRAN
ROLLBACK TRAN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.