【发布时间】:2012-05-02 09:03:51
【问题描述】:
我的测试表有两列:
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
我知道我的第二个查询是错误的,所以我希望事务回滚,但它会插入第一个查询然后显示以下消息:
(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's,会发生同样的情况吗? -
您不能在 BEGIN 和 END 之间使用 GO 关键字。 [stackoverflow.com/questions/1180279/…[1]:stackoverflow.com/questions/1180279/…
标签: transactions sql-server-2008-r2 rollback