MSSQL脚本使用?'在字符串

时间:2015-12-21 14:51:20

标签: sql-server apostrophe

我有一个无法运行的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
')

问题在于它无法识别?作为有效的语法。

第一个'''通过简单地使用2个撇号而不是一个撇号而起作用。但它不会与问号结合使用。 有没有人知道这方面的解决方案?

1 个答案:

答案 0 :(得分:1)

IF OBJECT_ID('amClearString') IS NULL
    EXEC('
    CREATE FUNCTION dbo.amClearString(@Text NVARCHAR(MAX))  
    RETURNS NVARCHAR(4000)
    WITH EXECUTE AS CALLER
    AS
    BEGIN

        RETURN REPLACE(@Text, '''', ''?'')

    END')