2016-10-25 16 views
0

我有一個臨時表,我想對其執行一些數據操作,然後回寫到原始表。然而,作爲第一步,我想將原始數據與改變的數據並排比較。T-SQL將修改後的列數據寫入新列

鑑於以下查詢,我如何將修改後的數據寫入臨時表中的新列,以便我可以並排比較?我使用的是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 

回答

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 
+0

完美!感謝您的快速回復。 – PixelPaul

+0

一定要接受它,如果它是完美的@PixelPaul – scsimon