sql-server - sql server 2008 存储过程,不能在单引号中使用变量

标签 sql-server sql-server-2008 stored-procedures

这是我的存储过程。

ALTER PROCEDURE [dbo].[SearchIngredients] 
    @Term NVARCHAR(50) 
AS
BEGIN
    SET NOCOUNT ON;

    SELECT  *
    FROM    dbo.FoodAbbrev
    WHERE   Name LIKE '%@Term%'
    ORDER BY Name

END

我一直没有得到任何结果。我认为这是因为我将变量放在单引号中,DB 可能认为这是字符串的一部分,而不是变量。尝试了其他几种方法,仍然无法解决,请帮助我。

我也试过了。仍然一无所获。

    SET @Term = '''%' + @Term + '%'''

    SELECT  *
    FROM    dbo.FoodAbbrev
    WHERE   Name LIKE @Term
    ORDER BY Name

最佳答案

简单;

set @Term = '%' + @Term + '%'

您只需将 2 个常量字符串添加到一个变量。

关于sql-server - sql server 2008 存储过程,不能在单引号中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12390715/

相关文章:

sql-server - 是否有理由对 SQL Server 中的列使用 Base2 长度?

c# - SQL 数据库 VS。多个平面文件(数以千计的小型 CSV)

c# - 如何将 100 行插入到只有标识列的单个表中?

sql - 在 SQL Server 中循环记录集

c# - 使用 Entity Framework 获取存储过程输出参数引发映射错误 : The data reader is incompatible with the specified

php - PHP 中的 SQL Server 存储过程输出参数

sql - 单个查询中的多个 MAX 值

sqlcmd 无法运行 - 这是配置问题吗?

c# - SQL语句耗时长线程冲突如何解决?

oracle - 从过程中调用带有表参数的函数时出现编译错误