Sql server 删除数据库的SQL Server警告
如果在错误的SQL Server会话窗口中或使用错误的数据库名称执行,T-SQL中的Sql server 删除数据库的SQL Server警告,sql-server,tsql,Sql Server,Tsql,如果在错误的SQL Server会话窗口中或使用错误的数据库名称执行,T-SQL中的DROP DATABASE命令可能会造成严重的伤害 这似乎是一个很好的情况,相当于旧的DOS“你确定吗?”警告 SQL Server中是否有任何设置可以对给定的数据库执行类似的操作?可能是DDL触发器,例如 ALTER TRIGGER DB_Drop_Warnning ON ALL SERVER FOR DROP_DATABASE AS DECLARE @DatabaseName NVARCHAR(100)
DROP DATABASE
命令可能会造成严重的伤害
这似乎是一个很好的情况,相当于旧的DOS“你确定吗?”警告
SQL Server中是否有任何设置可以对给定的数据库执行类似的操作?可能是DDL触发器,例如
ALTER TRIGGER DB_Drop_Warnning
ON ALL SERVER
FOR DROP_DATABASE
AS
DECLARE @DatabaseName NVARCHAR(100),
@eventData XML
SET @eventData = EVENTDATA()
SELECT @DatabaseName = @eventData.value('(/EVENT_INSTANCE/DatabaseName)[1]','varchar(128)')
IF @DatabaseName IN ('TEST_DB1','TEST_DB2','TEST_DB3') --<-- your database name(s) here
BEGIN
PRINT 'Disable the trigger before you can drop the database.'
ROLLBACK;
END
GO
现在,如果您尝试删除该数据库,它将抛出以下错误:
Disable the trigger before you can drop the database.
Msg 3609, Level 16, State 2, Line 1
The transaction ended in the trigger. The batch has been aborted.
如果要删除数据库,只需禁用触发器:
DISABLE TRIGGER [DB_Drop_Warnning] ON ALL SERVER
GO
不。SQL中没有提示,最好不要有任何提示。唯一的安全设置是你的大脑-在开始删除数据库之前使用它!真的,如果他们需要警告,那就不要给他们权力。如何更改、截断、删除、更新等。。。?它停在哪里?没有备份也会造成巨大的伤害。@Steve:我不认为他要求的是“在SQL”或“在SQL Server”中的提示,而是SQL客户端(SSMS)中的提示(最有可能是)@a_horse_,其名称为:是。这就是我的想法。
DISABLE TRIGGER [DB_Drop_Warnning] ON ALL SERVER
GO