我有一个临时表,我想对其执行一些数据操作,然后写回原始表。但是,作为第一步,我想将原始数据与改变的数据进行比较。
根据下面的查询,如何将修改后的数据写入临时表中的新列,以便我可以并排比较?我正在使用SQL Server 2008。
UPDATE #TempCustomControls
SET ConfigValue =
CASE
WHEN ConfigValue like '%GetPersonProperty%$PersonID$%'
THEN 'PersonLogic.GetPersonProperty($PersonID$, ' + RIGHT(ConfigValue, charindex(',', REVERSE(ConfigValue))-1) + ')'
WHEN ConfigValue like '%GetProfileProperty%$PersonID$%'
THEN 'PersonLogic.GetPersonProperty($PersonID$, ' + RIGHT(ConfigValue, charindex(',', REVERSE(ConfigValue))-1) + ')'
WHEN ConfigValue like '%GetProfileProperty%GetJobCreatedByPerson%$JobID$%'
THEN 'PersonLogic.GetPersonPropertyFromJobID($JobId$, ' + RIGHT(ConfigValue, charindex(',', REVERSE(ConfigValue))-1) + ')'
ELSE
ConfigValue
END
答案 0 :(得分:1)
在临时表中添加新列并更新新列而不是ConfigValue
。
Alter table #TempCustomControls add new_value varchar(100)
UPDATE #TempCustomControls
SET new_value =
CASE
WHEN ConfigValue like '%GetPersonProperty%$PersonID$%'
THEN 'PersonLogic.GetPersonProperty($PersonID$, ' + RIGHT(ConfigValue, charindex(',', REVERSE(ConfigValue))-1) + ')'
WHEN ConfigValue like '%GetProfileProperty%$PersonID$%'
THEN 'PersonLogic.GetPersonProperty($PersonID$, ' + RIGHT(ConfigValue, charindex(',', REVERSE(ConfigValue))-1) + ')'
WHEN ConfigValue like '%GetProfileProperty%GetJobCreatedByPerson%$JobID$%'
THEN 'PersonLogic.GetPersonPropertyFromJobID($JobId$, ' + RIGHT(ConfigValue, charindex(',', REVERSE(ConfigValue))-1) + ')'
ELSE
ConfigValue
END
检查select
两列
Select ConfigValue,new_value
From #TempCustomControls