Sql server 我更新了临时表,它更新了原始表MSSQL服务器
我运行这个查询来更新临时表Sql server 我更新了临时表,它更新了原始表MSSQL服务器,sql-server,Sql Server,我运行这个查询来更新临时表CTE_Companies,它更新了原始Companies表。我现在该怎么办:( 公共表表达式不是临时表。它更像是一个或多个表上的子查询。如果从单个表中选择,则将更新此表 这是精心设计的,非常有用,因为您可以更改更新/删除以执行选择操作,从而轻松查看要更改或删除的内容。因此,您应该在CTE中包含Where条件。如果没有基表,则无法更新表表达式。 使用临时表。获取最后一次备份。。。 BEGIN TRAN WITH CTE_Companies (ZIP) As ( Sel
CTE_Companies
,它更新了原始Companies
表。我现在该怎么办:(
公共表表达式不是临时表。它更像是一个或多个表上的子查询。如果从单个表中选择,则将更新此表
这是精心设计的,非常有用,因为您可以更改
更新
/删除
以执行选择
操作,从而轻松查看要更改或删除的内容。因此,您应该在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
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