我想寫入動態tsql,但系統返回錯誤'無效列'爲什麼?無效列錯誤與動態SQL
DECLARE @WhereClause NVARCHAR(2000)
DECLARE @SelectStatement NVARCHAR(2000)
DECLARE @FullStatement NVARCHAR(4000)
set @WhereClause = 'elad'
SET @SelectStatement = 'SELECT TOP 1 * FROM elad where '
SET @FullStatement = @SelectStatement +'last_name'+'='[email protected]
EXECUTE sp_executesql @FullStatement
在此查詢我希望系統返回所有的行,去年name字段等於ELAD, 但系統返回:
消息207,級別16,狀態1,行
列名'elad'無效。'
你的SQL語句的結果TOP 1 * FROM ELAD WHERE姓氏= elad'因而'WHERE'條款試圖比較' last_name「列添加到」elad「列 - 這當然不存在。您需要將字符串文字放入**單引號!** .... –
當您遇到動態查詢問題時,請編寫正確的* static *版本,更改構建動態查詢的腳本以便它**打印**查詢,而不是執行它。查看打印結果並與正確的靜態版本進行比較。如果你不能解決這個問題,*然後*詢問它,告訴我們查詢*應該*看起來像什麼(不要讓我們猜測!)。 –