Sql-Server
在 XML 列中編輯單個條目的最簡單方法?
據我了解,MS SQL Server Management Studio 不允許通過 GUI 直接編輯/替換 XML 列中的條目(複製/粘貼不起作用等)。
替換 XML 列中的單個條目的最簡單選項是什麼?我必須對 XML 列值使用不同於 UPDATE/REPLACE 的東西嗎?
如果您只需要一次替換整個 XML,那麼您可以執行正常的 UPDATE,例如:
UPDATE yourTable SET yourXML = '<yourNewValidXML/>' WHERE rowId = 1
如果您需要編輯單個屬性或元素,則可以使用 SQL Server 中 XML 數據類型的 .modify 方法來更新單個值。這是一個簡單的範例,可以幫助您入門:
DECLARE @t TABLE ( rowId INT IDENTITY PRIMARY KEY, yourXML XML ) INSERT INTO @t ( yourXML ) VALUES ( '<Users> <User Name="Bob"></User> <User Name="Mikhail"></User> <User Name="John"></User> <User Name="Sue"></User> </Users>' ) SELECT 'before' s, DATALENGTH(yourXML) dl, yourXML FROM @t WHERE rowId = 1 -- Update one attribute UPDATE @t SET yourXML.modify('replace value of (Users/User/@Name[.="Bob"])[1] with "wBob"') WHERE rowId = 1 SELECT 'after' s, DATALENGTH(yourXML) dl, yourXML FROM @t WHERE rowId = 1
如果您需要更多幫助,請發布您的 XML 的小樣本和您的預期結果。