【发布时间】:2017-07-05 11:01:44
【问题描述】:
我是 sql 初学者,不知道如何解决我的问题。
我有一个包含项目的表,一列包含 xml 值。我想检查一个字段是否存在并更新它。
我找到了一种修改现有 xml 值的方法,但是当它为 NULL 时它不起作用
这是我的代码:
SELECT @xml=IDA_Xml,
@isData = IDA_Xml.exist('(/Root/Data[1]/text())[1]')
FROM DATA
WHERE IDA_UId=@guid
If (@xml is NULL)
BEGIN
-- Create a xml value with <Root></Root>
-- It will be update later
-- set isData to 0
END
IF (@isData = 0)
UPDATE ItemData SET IDA_Xml.modify
('
insert <Data Name = "Info">{sql:variable("@number")}</Data>
into (/Root/*)[1]
')
WHERE IDA_UId = @guid;
ELSE
UPDATE ItemData SET IDA_Xml.modify
('
replace value of (/Root/Data[1]/text())[1]
with sql:variable("@number")
')
WHERE IDA_UId = @guid;
【问题讨论】:
标签: sql-server tsql xpath xquery xml-dml