1

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

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)

但它不是这样工作的,在我的搜索中我找不到合适的解决方案。有谁知道如何

4

1 回答 1

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。

于 2013-08-14T12:03:12.350 回答