我在 sp_executesql 中遇到了一个非常奇怪的类似搜索行为:
此语句返回 0 行:
exec sp_executesql N'SELECT * FROM MyTable WHERE Name LIKE ''%'' +
@Name + ''%''',N'@Name nvarchar(7)',@Name=N'100024'
当此等效项返回所需的行时:
DECLARE @Name nvarchar(7)=N'100024'
SELECT * FROM MyTable WHERE Name LIKE '%' + @Name + '%'
exec sp_executesql 命令有什么问题?如果我用它来搜索其他行,例如“100033”,它会找到该行,所以语法必须没问题(事实上,当我尝试调试我的 asp.net 页面没有找到这个特定元素时,查询是从 SQL Profiler 获取的)