2016-05-23 3 views
2

Ich versuche, Spalte "XML_File" für alle (~ 50 000) Zeilen mit jeder Zeile XML-Datei zu aktualisieren, so Lösung mit CASE, WANN, DANN ist nicht sinnvoll . Für Testzwecke verwende ich AdventureWorks2012. Code I lief und XML für BusinessEntityID = 1 speichern zu erstellen:Aktualisieren mehrerer Zeilen in einer Spalte mit XML in MS SQL

UPDATE [Person].[Password] 
    SET [XML_File] = (SELECT [BusinessEntityID] 
     ,[PasswordHash] 
     ,[PasswordSalt] 
     ,[rowguid] 
     ,[ModifiedDate] 
     ,[XML_File] 
    FROM [Person].[Password] 
WHERE BusinessEntityID = 1 
FOR XML PATH('Summary')) 
WHERE BusinessEntityID = 1 

Tabellenansicht: enter image description here

Erstellt XML:

<Summary> 
    <BusinessEntityID>1</BusinessEntityID> 
    <PasswordHash>pbFwXWE99vobT6g+vPWFy93NtUU/orrIWafF01hccfM</PasswordHash> 
    <PasswordSalt>bE3XiWw=</PasswordSalt> 
    <rowguid>329EACBE-C883-4F48-B8B6-17AA4627EFFF</rowguid> 
    <ModifiedDate>2003-02-08T00:00:00</ModifiedDate> 
</Summary> 

So ist es eine Möglichkeit, mein Ziel zu erreichen, mit SQL-Abfrage?

Antwort

1
UPDATE p 
SET [XML_File] = (
    SELECT [BusinessEntityID] 
     , [PasswordHash] 
     , [PasswordSalt] 
     , [rowguid] 
     , [ModifiedDate] 
    FOR XML PATH ('Summary') 
) 
FROM [Person].[Password] p 
+0

Vielen Dank, das ist genau das, was ich brauchte. – furang

+0

@Forang du bist willkommen :) – Devart

Verwandte Themen