2016-10-25 4 views
0

Ich habe eine temporäre Tabelle, die ich einige Datenmanipulation ausführen möchte, und dann zurück in die Ursprungstabelle schreiben. In einem ersten Schritt möchte ich jedoch die Originaldaten Seite an Seite mit den geänderten Daten vergleichen.T-SQL schreibt geänderte Spaltendaten in neue Spalte

Wie kann ich nach der unten stehenden Abfrage in die geänderten Daten in eine neue Spalte in der temporären Tabelle schreiben, so dass ich Seite an Seite vergleichen kann? Ich bin mit 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 

Antwort

1

eine neue Spalte in temp-Tabelle hinzufügen und die neue Spalte statt ConfigValue aktualisieren.

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 

Um zu überprüfen, select sowohl die Spalten

Select ConfigValue,new_value 
From #TempCustomControls 
+0

Perfect! Danke für die schnelle Antwort. – PixelPaul

+0

sicher sein, es zu akzeptieren, wenn es @PixelPaul perfekt ist – scsimon

Verwandte Themen