是否可以在这样的case语句中使用xml.modify,或者这必须是两个单独的update语句?
UPDATE s
SET
CASE WHEN [XMLData] IS NOT NULL THEN [XMLData].modify('delete //invoice/account/contactinformation') END,
CASE WHEN [SummaryXMLData] IS NOT NULL THEN [SummaryXMLData].modify('delete //invoice/account/contactinformation') END
FROM
ITS_CSC.[Statement].[StatementSummary] s
SQL Server引发此错误:
消息156,级别15,状态1,第34行
关键字“case”附近的语法不正确。
注意:直接对
modify
值调用NULL
方法失败,并显示以下消息,因此需要检查NULL
s不能对空值调用“column name”上的mutator“modify()”。
最佳答案
这是不正确的语法。您可以使用两个单独的语句:
UPDATE ITS_CSC.[Statement].[StatementSummary]
SET [XMLData].modify('delete //invoice/account/contactinformation')
WHERE [XMLData] IS NOT NULL;
UPDATE ITS_CSC.[Statement].[StatementSummary]
SET [SummaryXMLData].modify('delete //invoice/account/contactinformation')
WHERE [SummaryXMLData] IS NOT NULL;
关于sql - SQL Server中的条件XML修改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53947467/