将变量传递到SQL字符串中

4
有人可以帮我处理附加的语法吗?
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个回答

7
使用GO会终止一个范围(因此,在它之前声明的所有变量都会"丢失")- 将你的声明移到GO
USE [Production]
GO

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

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

1
你好 Marc,非常感谢你的帮助。现在它完美地运行了。 - Robert

1
在你的代码中:
DECLARE @SearchString NVARCHAR(MAX)
SET     @SearchString = 'fletc'

USE [Prodution]
GO

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

这里有一个GO语句。在GO之后,可见性会重新开始。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接