我使用下面的代码在SQL Server 2005其他语句错误或事务影响?
BEGIN TRANSACTION;
CREATE TABLE dbo.MyTable
(
idLang int NOT NULL IDENTITY (1, 1),
codeLang nvarchar(4) NOT NULL
) ON [PRIMARY];
IF @@ERROR = 0
BEGIN
PRINT 'before_commit';
COMMIT TRANSACTION;
PRINT 'after_commit';
END
ELSE
BEGIN
PRINT 'before_rollback';
ROLLBACK TRANSACTION;
PRINT 'after_rollback';
END
GO
1 - 显示时MyTable的不存在(没有错误的情况下):
before_commit
after_commit
=>行
2 - 当MyTable存在时显示(错误案例):
'数据库中已有一个名为'MyTable'的对象。'
=>为什么“else”语句没有执行? (不打印,不回滚)
我知道用的try-catch的选择,但我想了解这个陌生的情况下...
谢谢!