【发布时间】:2010-08-24 12:43:48
【问题描述】:
SET @whereCond = @whereCond + ' AND name LIKE ''%'' + @name + ''%'''
这里有什么问题吗?在生成 where 条件后,我使用sp_executesql 执行它,但我确实得到了任何东西。当我在没有 sp 的情况下选择相同的东西时,没关系。
如何在 sp_executesql 中使用 LIKE?可以举一些例子吗?
谢谢。
更新
declare @name nvarchar(50)
set @name = 'a'
SELECT *
FROM Tbl_Persons WHERE 1 = 1 AND lastname LIKE '%a%'
exec sp_executesql
N'SELECT *
FROM Tbl_Persons WHERE 1 = 1 AND lastname LIKE ''%@name%''',
N'@name nvarchar(50)',
@name=@name
第一个查询返回值,第二个不返回任何值。
有什么区别?
【问题讨论】:
标签: sql-server sql-server-2008 sp-executesql