SQL Server error on update command - “A severe error occurred on the current command”

后端 未结 10 1842
一生所求
一生所求 2020-11-28 11:13

Running the following query in SQL Server Management Studio gives the error below.

update table_name set is_active = 0 where id  = 3
相关标签:
10条回答
  • 2020-11-28 11:40

    One other possible solution we just found after having this issue across multiple databases/tables on the same server.

    Is the max connections open to the sql server. We had an app that wasn't closing it's SQL connection and was leaving them open so we were running around 28K-31K connections (SQL Sever has a max out at 32K ish), and we noticed that once we killed a few thousand sleeping connections it took care of the error listed on this question.

    The fix was to update the apps to make sure they closed their connections instead of leaving them open.

    0 讨论(0)
  • 2020-11-28 11:47

    I was having the error in Hangfire where I did not have access to the internal workings of the library or was I able to trace what the primary cause was.

    Building on @Remus Rusanu answer, I was able to have this fixed with the following script.

        --first set the database to single user mode
        ALTER DATABASE TransXSmartClientJob
        SET SINGLE_USER
        WITH ROLLBACK IMMEDIATE;
        GO
    
        -- Then try to repair
        DBCC CHECKDB(TransXSmartClientJob, REPAIR_REBUILD)
    
        -- when done, set the database back to multiple user mode
        ALTER DATABASE TransXSmartClientJob
        SET MULTI_USER;
        GO
    
    0 讨论(0)
  • 2020-11-28 11:49

    This error is exactly what it means: Something bad happened, that would not normally happen.

    In my most recent case, the REAL error was:

    Msg 9002, Level 17, State 2, Procedure MyProcedure, Line 2 [Batch Start Line 3]
    The transaction log for database 'MyDb' is full due to 'LOG_BACKUP'.
    

    Here is my checklist of things to try, perhaps in this exact order:

    1. Check if you're out of disk space (this was my real problem; our NOC did not catch this)
    2. Check if you're low on memory
    3. Check if the Windows Event Log shows any serious system failures like hard drives failing
    4. Check if you have any unsafe code loaded through extended procedures or SQLCLR unsafe assemblies that could de-stabilize the SQLServer.exe process.
    5. Run CheckDB to see if your database has any corruption issues. On a very large database, if this stored procedure only touches a sub-set of tables, you can save time by seeing which partitions (filegroups) the stored procedure touches, and only checking those specific filegroups.
      1. I would do this for your database and master db as well.
    0 讨论(0)
  • 2020-11-28 11:49

    This seems to happen when there's a generic problem with your data source that it isn't handling.

    In my case I had inserted a bunch of data, the indexes had become corrupt on the table, they needed rebuilding. I found a script to rebuild them all, seemed to fix it. To find the error I ran the same query on the database - one that had worked 100+ times previously.

    0 讨论(0)
提交回复
热议问题