טרנזקציות, שגיאות ושגרות שגיאה: השימוש באופציית Xact_Abort ובפונקציה Xact_State

יום שני, אוגוסט 23, 2010

האופציה Xact_Abort מגדירה אם בשעת שגיאה לעצור את הריצה ולבצע Rollback לטרנזקציה (On) או לא (Off), כאשר האופציה השניה היא ברירת המחדל. הפונקציה Xact_State קובעת האם יש טרנזקציה פתוחה (1) או אין טרנזקציה פתוחה (0); וכן האם יש טרנזקציה פתוחה שלא ניתן לבצע לה Commit אלא רק Rollback בשל שגיאה (1-). דוגמה 1 – ניצור טבלה עם Primary Key (אסור להכניס ערכים כפולים), ונראה מה קורה במקרה של Xact_Abort Off (ברירת החמדל): Use tempdb; Go If Object_Id('T','U') Is Not Null Drop Table T; Go Create Table T(A Int Not Null Primary Key); Go Set Xact_Abort Off;--ברירת מחדל Select 1 N, 'Before...