我试图在SQL Server 2012上搜索以下查询但是当我使用@Val2
时出现错误:
Msg 126,Level 15,State 1,Line 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)
答案 0 :(得分:2)
如果变量包含文本
,则需要在变量周围加上引号SET @SQL= 'SELECT * FROM your_table WHERE [F1]='''+@Val2 + ''''