首页 > 解决方案 > SQL Server 重写查询而不使用 %

问题描述

我改用在我的代码中使用准备好的语句,我得到了其他一切工作,但我仍然被这个难住了。如何在不使用的情况下重新编写查询%

错误(在 C# 中使用准备好的语句时):

System.Data.SqlClient.SqlException:'@co' 附近的语法不正确。无法准备声明。

我的原始(工作)查询:

SELECT TOP(1) [shortName] 
FROM [xx].[dbo].[yy] 
WHERE [AWScompanyList] LIKE '%1040%'

我在切换到准备好的语句后尝试重写

--Cannot use a CONTAINS or FREETEXT predicate on table or indexed view 'xx.dbo.yy' because it is not full-text indexed.
SELECT TOP(1) [shortName] 
FROM [xx].[dbo].[yy] 
WHERE CONTAINS([AWScompanyList], '1040')

标签: c#sqlsql-server

解决方案


应该就这么简单。假设您添加了一个名为 @co 的参数。

SELECT top(1) shortName 
FROM xx.dbo.yy 
where AWScompanyList like '%' + @co + '%'

推荐阅读