首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于事务以及 begin try . try catch 的有关问题

2012-02-09 
关于事务以及 begin try ... try catch 的问题。一个简单的存储过程:

关于事务以及 begin try ... try catch 的问题。
一个简单的存储过程:
=====================================================
ALTER   PROCEDURE   [dbo].[InsertTestAndTestChar]
        @Char   CHAR(1)
AS
BEGIN

        BEGIN   TRANSACTION

        BEGIN   TRY

        INSERT   INTO   [Test]
        (
                [Code]
        )
        VALUES
        (
                @Char
        )

        INSERT   INTO   [_TestChar]
        (
                [Code]
        )
        VALUES
        (
                @Char
        )

        COMMIT

        END   TRY

        BEGIN   CATCH

                ROLLBACK

        END   CATCH

END

我帮意将表名   TestChar   改为   _TestChar   引起存储过程执行出错。报错如下:

(1   row(s)   affected)
Msg   208,   Level   16,   State   1,   Procedure   InsertTestAndTestChar,   Line   24
Invalid   object   name   '_TestChar '.
Msg   266,   Level   16,   State   2,   Procedure   InsertTestAndTestChar,   Line   24
Transaction   count   after   EXECUTE   indicates   that   a   COMMIT   or   ROLLBACK   TRANSACTION   statement   is   missing.   Previous   count   =   1,   current   count   =   2.

(1   row(s)   affected)

最后一个错是什么意思?为什么会报那个错?我已经   try   catch   了,为什么还是会报出岂常?我并没有在   try   catch   模块里面抛出异常啊。

[解决办法]
说明没有_TestChar这张表,严重异常错误,编译器会自动抛出
[解决办法]
另外, 像表不存在这样的严重错误, TRY ... CATCH 是处理不到的, 这点在联机帮助上有说明.
[解决办法]
大版主已经说过了:

像表不存在这样的严重错误, TRY ... CATCH 是处理不到的
[解决办法]
TRY ... CATCH
在后台这个基本是垃圾,不要期待它象前台那样

热点排行