我有一个无法运行的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个撇号而不是一个撇号而起作用。但它不会与问号结合使用。 有没有人知道这方面的解决方案?
答案 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')