2

我试图在 SQL Server 2012 上搜索以下查询,但使用时@Val2出现错误:

消息 126,级别 15,状态 1,第 1 行
无效的伪列“$E500385”。

如果我使用 @Val1它工作得很好

有任何想法吗?

DECLARE @Val1 NVARCHAR(30) = '09064881'  
DECLARE @Val2 NVARCHAR(30) = '$E500385.MS3'  
DECLARE @SQL  NVARCHAR(1000)

SET @SQL = 'SELECT * FROM <table> WHERE [F1] = '+@Val2 
EXEC(@SQL)

SET @SQL= 'SELECT * FROM <table>  WHERE [F2] = '+@Val1  
EXEC(@SQL)
4

1 回答 1

2

You need to put quotes around the variables if they contain text

SET @SQL= 'SELECT * FROM your_table WHERE [F1]='''+@Val2 + ''''
于 2013-11-07T14:00:46.440 回答