gpt4 book ai didi

sql - text 或 ntext 数据类型上 REPLACE 的替代方案

转载 作者:行者123 更新时间:2023-12-01 16:55:25 31 4
gpt4 key购买 nike

我需要更新/替换datatable.column中的数据。该表有一个名为 Content 的字段。我正在使用 REPLACE 函数。由于列数据类型是 NTEXT,SQL Server 不允许我使用 REPLACE 函数。

我无法更改数据类型,因为该数据库是第三方软件表。更改数据类型将导致应用程序失败。

UPDATE [CMS_DB_test].[dbo].[cms_HtmlText] 
SET Content = REPLACE(Content,'ABC','DEF')
WHERE Content LIKE '%ABC%'

我收到此错误:

Msg 8116, Level 16, State 1, Line 1 Argument data type ntext is invalid for argument 1 of replace function.

  • 我可以使用 T-SQL 修复此问题吗?有人有如何阅读和循环的示例吗?
  • 由于这是一次性转换,也许我可以更改为其他类型,但我担心我会弄乱数据。

有一个主键字段:名称:ID - 整数 - 它是一个身份......所以我也需要考虑这个。也许将 Identity 设置为 N 临时。

请问如何实现REPLACE功能?

大约。 3000 条语句需要使用新的解决方案进行更新。

最佳答案

如果您的数据不会溢出 4000 个字符并且您使用的是 SQL Server 2000 或兼容级别 8 或 SQL Server 2000:

UPDATE [CMS_DB_test].[dbo].[cms_HtmlText] 
SET Content = CAST(REPLACE(CAST(Content as NVarchar(4000)),'ABC','DEF') AS NText)
WHERE Content LIKE '%ABC%'

对于 SQL Server 2005+:

UPDATE [CMS_DB_test].[dbo].[cms_HtmlText] 
SET Content = CAST(REPLACE(CAST(Content as NVarchar(MAX)),'ABC','DEF') AS NText)
WHERE Content LIKE '%ABC%'

关于sql - text 或 ntext 数据类型上 REPLACE 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4341613/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com