1
私のテストテーブルには2つの列があります。Sql Server 2008R2でトランザクションをROLLBACKできません。
id int not null
somecolumn varchar(10))
は今私のクエリを参照してください。
USE TRY
BEGIN TRANSACTION T1
INSERT INTO Test VALUES(7,'hi');
GO
INSERT INTO Test VALUES(8,'hi','ABC');
GO
PRINT @@ERROR
if @@ERROR>0
ROLLBACK TRANSACTION T1
ELSE
COMMIT TRANSACTION T1
私は私の2番目のクエリが間違っていることを知っているので、私は、トランザクションをロールバックしたいが、それはショーその後、最初のクエリを挿入しますこのメッセージ:
(1 row(s) affected)
Msg 213, Level 16, State 1, Line 1
Column name or number of supplied values does not match table definition.
213
「GO」を削除しても同じことが起こりますか? – xan
BEGINとENDの間にGOキーワードを使用することはできません。 [http://stackoverflow.com/questions/1180279/when-do-i-need-to-use-begin-end-blocks-and-the-go-keyword-in-sql-server] [ 1] [1]:http://stackoverflow.com/questions/1180279/when-do-i-need-to-use-begin-end-blocks-and-the-go-keyword- in-SQL-server –