-1

当我尝试这个时:

DECLARE @var nvarchar(500) collate Arabic_BIN

收到:

Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'collate'.

那是完整的代码,它可以工作,我不知道如何,但是给我的人已经成功使用它

CREATE FUNCTION fn_RemoveTashkeel (@InputString nvarchar(2300) )

RETURNS nvarchar(2300)

AS
BEGIN
   DECLARE @OutputString nvarchar(2300) COLLATE Arabic_BIN 
   DECLARE @TashkeelChr char(8) COLLATE Arabic_BIN 
   DECLARE @feed int
   SET @OutputString=@InputString
   SET @TashkeelChr='ًٌٍَُِّْْْْْ'
   SET @feed=1
 WHILE @feed<=LEN(@TashkeelChr)
   BEGIN
    SET @OutputString=REPLACE(@OutputString,SUBSTRING(@TashkeelChr,@feed,1),'')
    SET @feed=@feed+1
   END
   RETURN(@OutputString)
END
4

1 回答 1

1

您没有在变量声明中设置排序规则。根据 MSDN 文档:

整理

是一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则强制转换。

换句话说,您可以在数据库级别、作为表列定义的一部分或在 SELECT 语句中设置排序规则。

有关详细信息,请参阅MSDN 文档

于 2010-10-12T23:23:58.633 回答