Pet*_*teT 29 sql-server sql-server-2000
我遇到了一个经典的问题,需要在sql 2000数据库的文本字段上进行字符串替换.这可能是整个列的更新或单个字段我不挑剔.
我已经找到了一些如何使用updatetext来实现它的例子,但它们往往是在存储过程中,有没有人知道包含在函数中的类似事情,所以我可以使用它,就像我通常使用Replace()一样.对于不知道的人来说,Replace()函数的问题在于它不支持文本字段.
编辑:我意识到我可能会使用varchar(8000),因此已将字段交换为此类型以解决问题.我从未找到真正的解决方案.
sur*_*ran 48
以下是使用REPLACE函数更新表和文本列的示例查询.希望这对你有用.
UPDATE <Table> set textcolumn=
REPLACE(SUBSTRING(textcolumn,1,DATALENGTH(textcolumn)),'findtext','replacetext')
WHERE <Condition>
Run Code Online (Sandbox Code Playgroud)
恐怕你不能在函数内做到这一点
当您尝试声明如下函数时:
create function dbo.textReplace(
@inText as text)
returns text
as
begin
return 'a' -- just dummy code
end
Run Code Online (Sandbox Code Playgroud)
您将收到以下错误:
The text data type is invalid for return values.
Run Code Online (Sandbox Code Playgroud)
换句话说,您无法为文本数据类型编写简单的 REPLACE 函数