将sql非Unicode参数转换为Unicode

时间:2013-08-14 10:59:30

标签: sql unicode sql-like nvarchar

我的数据库中的人员表中有两条记录,它们的姓氏是“تحصیلداری”和“موقر”。
当我使用

select * from Person where Lastname like N'%ی%'

包含姓氏中的“ی”字符的记录返回,这正是我需要的,但我需要一点改动。我需要使用%%之间的单词作为参数 类似的东西:

create procedure usp_GetPersonsWhoseNameContains(@LN nvarchar(50))
as
begin
    select * from Person where Lastname like N'%'+@LN+'%'
end

declare @LastName nvarchar(50) = 'ی'
exec usp_GetPersonsWhoseNameContains(@LastName)

但它没有这种方式,在我的搜索中我找不到合适的解决方案。有谁知道如何

1 个答案:

答案 0 :(得分:2)

尝试

create procedure usp_GetPersonsWhoseNameContains(@LN nvarchar(50))
as
begin
    select * from Person where Lastname like N'%'+@LN+'%'
end

declare @LastName nvarchar(50) = N'ی'
exec usp_GetPersonsWhoseNameContains(@LastName)

也许您注意到SQL Server在为您生成DDL脚本时将N用于任何引用的字符串输入。