Sql server 在MS SQL中使用XML更新一列中的多行
我试图用每行XML文件更新所有(~50000)行的新增列“XML_File”,所以使用CASE,WHEN,THEN的解决方案是不合理的。 出于测试目的,我使用AdventureWorks2012。 为BusinessEntityID=1创建和保存XML而运行的代码:Sql server 在MS SQL中使用XML更新一列中的多行,sql-server,xml,sql-update,Sql Server,Xml,Sql Update,我试图用每行XML文件更新所有(~50000)行的新增列“XML_File”,所以使用CASE,WHEN,THEN的解决方案是不合理的。 出于测试目的,我使用AdventureWorks2012。 为BusinessEntityID=1创建和保存XML而运行的代码: UPDATE [Person].[Password] SET [XML_File] = (SELECT [BusinessEntityID] ,[PasswordHash] ,[PasswordSalt
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
表视图:
创建的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>
1.
pbFwXWE99vobT6g+vPWFy93NtUU/orrIWafF01hccfM
bE3XiWw=
329EACBE-C883-4F48-B8B6-17AA4627EFFF
2003-02-08T00:00:00
那么,有没有办法通过sql查询实现我的目标呢
UPDATE p
SET [XML_File] = (
SELECT [BusinessEntityID]
, [PasswordHash]
, [PasswordSalt]
, [rowguid]
, [ModifiedDate]
FOR XML PATH ('Summary')
)
FROM [Person].[Password] p