可以替换T-SQL中的数字

时间:2015-09-21 19:33:32

标签: sql-server sql-server-2008 tsql

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位数并替换它们。

1 个答案:

答案 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数据类型。这是正确的。