我在其中一個存儲過程中有一個典型的「無效列名」,但我很努力瞭解任何常用的解決方法如何解決我的問題:(帶有「FOR XML AUTO」的無效列
我的存儲過程確實是這樣的:?
IF EXISTS (SELECT * FROM sysobjects o
JOIN syscolumns c
ON o.id = c.id
WHERE o.Name = 'Table_A'
AND c.Name = 'Column_A')
BEGIN
SELECT * FROM Table_B
JOIN Table_A
ON Table_B.Column_B = Table_A.Column_B
WHERE Table_A.Column_A = 1
FOR XML AUTO
END
ELSE
--Do something completely different
所以...我收到了錯誤Table_A.Column_A是無效的,但我怎麼回事可以參考它在我查詢我試着使用動態SQL創建字符串直到「FOR XML AUTO」部分,然後使用存儲過程在之後標記「FOR XML AUTO」部分,thinknig可能是問題所在,但我得到的錯誤是相同的要麼。
要回答的問題我敢肯定有人會問,查詢:
SELECT * FROM sysobjects o
JOIN syscolumns c
ON o.id = c.id
WHERE o.Name = 'Table_A'
AND c.Name = 'Column_A'
息率沒有結果,因爲當Column_A不表-A你所期望的。
和......不,我不能更改數據庫結構,而不是,它必須是這種解決方法,因爲該表可能會或可能不包含此列,這取決於數據庫實例,我需要一個「catch-所有「...
任何好點子?
你可以添加你的動態SQL版本嗎?我想不出沒有動態SQL的方法,獲得完全相同的錯誤聽起來很奇怪。 –