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

时间:2012-09-12 14:40:22

标签: 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

2 个答案:

答案 0 :(得分:6)

只需;

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

您只需在变量中添加2个常量字符串。

答案 1 :(得分:0)

正确的方法如下:

set @FieldValue = '''' + @FieldValue + ''''