2013-10-04 89 views
4

有人可以帮助我的语法连接传递变量到SQL字符串

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

USE [Prodution] 
GO 

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

我想在底部以连接LIKE语句。但是,我得到的连接错误消息:

消息137,级别15,状态2,3号线
必须声明标量变量 “@SearchString”。

任何帮助将不胜感激。

感谢

罗布

回答

6

采用GO终止范围(被宣布之前被 “丢失” 的所有变量) - 将你的声明GO后:

USE [Production] 
GO 

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

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

Hello Marc,非常感谢您的帮助。它现在完美。 – Robert

1

在您的代码:

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

USE [Prodution] 
GO 

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

有一个GO语句。 GO之后再次启动可见性