2013-06-20 59 views
4

如何在查詢時發現錯誤時繼續執行SQL查詢?如何在發現錯誤時繼續SQL查詢?

我想繼續查詢是否會發生任何錯誤。我想獲得某個語句的輸出,並想查看查詢的最後輸出是什麼。

你怎麼能在T-SQL中做到這一點?

+5

不能繼續一個** **查詢並忽略所有錯誤。假設你的意思是你希望從下面的SELECT * FROM(SELECT 1 UNION ALL SELECT CAST('X'AS INT)UNION ALL SELECT 2')得到一個結果集'1,2'T(C)' –

+0

@MartinSmith TRY CATCH對我有用嗎? – ajdeguzman

+3

你的情況如何?如果按照我之前的評論,那麼沒有人會做你想做的事。你能更具體地說明你想要做什麼嗎? –

回答

8

您可以使用TRY-CATCH進行錯誤處理。

您可以找到足夠的文檔在這裏:http://msdn.microsoft.com/en-us/library/ms175976.aspx

UPDATE:

後多一點研究,我發現,使用GO命令將允許你繼續你的下一個查詢,你贏了不必用TRY-CATCH語句重構你的整個代碼。我仍然建議使用TRY-CATCH語句來控制錯誤,但只需在它們之間使用GO

這是我找到了答案的鏈接:continue-executing-sql-statements-despite-errors

+3

這並沒有真正解釋如何使用'TRY ... CATCH'時如何可以有SQL查詢*繼續*。 –

+1

TRY CATCH只允許您控制錯誤處理。不要繼續。 – gbn

+0

這有所幫助。我配對GO在SQLCMD -d -i 上運行118mb腳本。事實證明,這是一個單一的,煩人的,小小的,令人鼓舞的變化之一,造成了我的一個價值觀的開發者找不到外鍵:) – Eon