我尝试在 SQL Server 2012 上搜索以下查询,但当我使用 @Val2
时出现错误:
Msg 126, Level 15, State 1, Line 1
Invalid pseudocolumn "$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)
最佳答案
如果变量包含文本,则需要在变量两边加上引号
SET @SQL= 'SELECT * FROM your_table WHERE [F1]='''+@Val2 + ''''
关于sql - 动态 SQL 中无效的伪列错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19837815/