SQL Server 2008(但也可以访问更高版本)
我从同一台服务器上的另一个数据库中获取字符串。使用下面的代码我得到一些数据并替换内容
INSERT INTO [DestinationDatabase].[DBO].[Table](ID, XML)
(SELECT ID, REPLACE(XML,'ReferenceID="1234"','PropertyID="2468"')
FROM [SourceDatabase].[DBO].[Customers]
这可以按预期工作,但每条记录都有不同的ReferenceID,所以有没有办法删除当前的ReferenceID值,如4位数(大约1000条记录,具有不同的值),并将其替换为另外4位数值?
我将从另一个程序中获取替换值,但在此阶段我需要知道是否可以找到并删除4位数并替换它们。
答案 0 :(得分:1)
如果你想使用替换功能,你可以这样做
REPLACE(XML,'ReferenceID="'+cast(table.field as nvarchar)+'"','ReferenceID="2468"')
REPLACE(XML,'ReferenceID="'+cast(table.field as nvarchar)+'"','ReferenceID="'+cast(table.another_field as nvarchar)+'"')
您可以使用xml函数执行此操作,但似乎您的XML列不是xml数据类型。这是正确的。