sp_executesql 执行like 的问题

exec sp_executesql N'SELECT * FROM PAGE_T WHERE PAGENAME like @pagename',N'@pagename char(52)',@pagename='%管理%'
这句话是通过sql2005跟踪而来的,在数据库中执行不出结果,但是使用
SELECT * FROM PAGE_T WHERE PAGENAME like '%管理%' 却可以查出结果
请问这个是为什么?
为什么sql2005 要用sp_executesql来执行like

你想啊。
[code="java"]
SELECT * FROM PAGE_T WHERE PAGENAME like '%管理%'
[/code]
这句 有单引号吧

如果你以@pagename='%管理%' 传入了,单引号呢?没了吧。主要是单引号问题。你可以设置一下QUOTE为off ,然后用双引号写语句