SQL Server/T-SQL/Transaction/XACT ABORT

Материал из SQL эксперт
Перейти к: навигация, поиск

SET XACT_ABORT ON

   <source lang="sql">

3> IF EXISTS (SELECT * FROM sysobjects WHERE name="show_error" 4> AND type="U") 5> DROP TABLE show_error 6> GO 1> 2> CREATE TABLE show_error 3> ( 4> col1 smallint NOT NULL PRIMARY KEY, 5> col2 smallint NOT NULL 6> ) 7> GO 1> 2> SET XACT_ABORT ON 3> BEGIN TRANSACTION 4> 5> INSERT show_error VALUES (1, 1) 6> INSERT show_error VALUES (1, 2) 7> INSERT show_error VALUES (2, 2) 8> 9> COMMIT TRANSACTION 10> GO (1 rows affected) Msg 2627, Level 14, State 1, Server J\SQLEXPRESS, Line 6 Violation of PRIMARY KEY constraint "PK__show_error__78159CA3". Cannot insert duplicate key in object "dbo.show_error". 1> 2> SELECT * FROM show_error 3> GO col1 col2


------

(0 rows affected) 1> 2> drop table show_error; 3> GO

</source>