小编Hac*_*cko的帖子

如何分离 SQL Server 中损坏的数据库

我在外部存储上保存了 Sql 服务器数据文件。我想分离特定的数据库。如果未连接外部存储,我想删除数据库。

这是安全的方法吗:

 DECLARE @DB_NAME SYSNAME = 'Database_name';

 BEGIN TRY          

        -- Check if db has correct structure
        DBCC CHECKDB (@DB_NAME)  WITH  ALL_ERRORMSGS ;

        -- Stop using db 
        EXEC( 'ALTER DATABASE ' +@DB_NAME + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE; ');

        -- Detach db
        EXEC sp_detach_db @dbname= @DB_NAME , @skipchecks= 'true';      

    END TRY
    BEGIN CATCH

        -- DB files are missing - drop database
        IF ERROR_NUMBER() = 945 
        BEGIN
            EXEC ('DROP DATABASE  ' + @DB_NAME);
        END     
    END CATCH;
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql

7
推荐指数
1
解决办法
7965
查看次数

标签 统计

sql-server ×1

t-sql ×1