回答

1
IF EXISTS() 

是我應該在T-SQL中經常使用的東西。很多時候,開發人員編寫SQL代碼時,他們不會像編寫常規代碼時那樣考慮異常和錯誤。

+0

不要害怕RAISEERROR要麼給你無效的輸入例如。這可以像託管代碼中的ArgumentException一樣使用,以將問題發回給調用者,而不僅僅是打破或返回損壞的結果。 – TheCodeKing 2010-09-22 22:32:01

2

要添加什麼斯科特說:

  • 使用SQL Server現在支持的TRY/CATCH
  • 驗證你的程序的參數和使用RAISERROR當事情不通過
  • 使用交易(小心)
+0

謹慎給我們提供一些關於交易的詳細信息? – rebelliard 2010-09-22 20:16:51

+1

小心,我的意思是不要簡單地在開始事務...提交事務中包裝整個過程。考慮一下需要交易的東西 – 2010-09-22 20:32:23

+1

@Rafael Belliard:遲到,早點完成。從不築巢。 SET XACT_ABORT ON – gbn 2010-09-22 20:36:53

0

除了其他人所說的之外,還要強制數據庫中的數據完整性!