将变量传递给SQL字符串

时间:2013-10-04 13:39:32

标签: sql sql-server variables

有人可以帮我解决附加的语法

DECLARE @SearchString NVARCHAR(MAX)
SET     @SearchString = 'fletc'

USE [Prodution]
GO

SELECT * FROM [User] WHERE Username LIKE '%' + @SearchString + '%'

我试图在底部连接LIKE语句。但是,我收到了错误消息:

  

Msg 137,Level 15,State 2,Line 3
  必须声明标量变量“@SearchString”。

非常感谢任何帮助。

感谢

罗布

2 个答案:

答案 0 :(得分:6)

GO的使用终止了一个范围(因此在它之前声明的所有变量都“丢失”) - 将您的声明移到之后 GO

USE [Production]
GO

DECLARE @SearchString NVARCHAR(MAX)
SET     @SearchString = 'fletc'

SELECT * FROM [User] WHERE Username LIKE '%' + @SearchString + '%'

答案 1 :(得分:1)

在您的代码中:

DECLARE @SearchString NVARCHAR(MAX)
SET     @SearchString = 'fletc'

USE [Prodution]
GO

SELECT * FROM [User] WHERE Username LIKE '%' + @SearchString + '%'

有GO声明。在GO

之后,可见性再次开始