我在外部存储上保存了 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)