带有西里尔字符参数

时间:2016-12-14 18:23:40

标签: c# sql-server stored-procedures unicode

我正在处理SQL Server 12.0.1800版中的一些语言问题。

我有一个表人员和一个存储过程,根据他们名字上的类似条件返回所有人。名称列的类型为NVARCHAR(50)。

该程序适用于英语,但在使用西里尔字符执行时,我需要在结果中使用N.

不起作用:

exec GET_PERSONS @argName = 'тест'

使用:

exec GET_PERSONS @argName = N'тест'

问题是我在实体框架6的C#客户端中使用此过程。并且没有办法在我知道的参数前放置N,并根据源我不应该如果列是nvarchar的。

调用程序(不返回任何内容):

string name = "тест";
db.SP_GetPersons(name);

步骤:

ALTER PROCEDURE [dbo].[GET_PERSONS]
    @argName NVarchar(100)
AS
BEGIN

    SELECT
        name
    FROM
        Persons
    WHERE
        Name like ISNULL(@argName + '%', '%')
        or Name like concat('% ', @argName, '%')

END

0 个答案:

没有答案