我有一个MSSQL脚本这是行不通的:?使用MSSQL脚本?'在串
IF object_id('amClearString') IS NULL
exec('CREATE FUNCTION [dbo].[amClearString](@Text ntext)
RETURNS NVARCHAR(4000)
WITH EXECUTE AS CALLER
AS
BEGIN
DECLARE @sClearText NVARCHAR(4000)
SET @sClearText = (SELECT REPLACE(CONVERT(nvarchar(4000), @Text), '''', '?''')
)
RETURN(@sClearText);
END
')
的问题是,它不会承认”作为有效的语法。
第一个''''按照它的假设通过简单地使用两个撇号而不是一个。但它不会与问号结合使用。 有没有人知道这个解决方案?
尝试使用',''?''') – lad2025
您也应该停止使用(n)文本。自SQL 2005以来,它已被弃用(n)varchar(max)。我真正不明白的是你为什么要用动态sql创建一个函数? –
你也没有取代任何东西。这个''''变成'' - 空字符串。 –