相关疑难解决方法(0)

如果您不将事务提交到数据库(例如,SQL Server)会发生什么?

假设我有一个查询:

begin tran
-- some other sql code
Run Code Online (Sandbox Code Playgroud)

然后我忘了提交或回滚.

如果另一个客户端尝试执行查询,会发生什么?

sql-server transactions commit

100
推荐指数
4
解决办法
12万
查看次数

@@ ERROR和/或TRY - CATCH

Try-Catch会捕获@@ ERROR可以发现的所有错误吗?在下面的代码片段中,检查@@ ERROR是否值得?RETURN 1111会发生吗?

SET XACT_ABORT ON
BEGIN TRANSACTION

BEGIN TRY
    --do sql command here  <<<<<<<<<<<

    SELECT @Error=@@ERROR
    IF @Error!=0
    BEGIN
        IF XACT_STATE()!=0
        BEGIN
            ROLLBACK TRANSACTION
        END
        RETURN 1111
    END

END TRY
BEGIN CATCH

    IF XACT_STATE()!=0
    BEGIN
        ROLLBACK TRANSACTION
    END
    RETURN 2222

END CATCH

IF XACT_STATE()=1
BEGIN
    COMMIT
END

RETURN 0
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2005

15
推荐指数
2
解决办法
3万
查看次数