SQLsever创建DDL触发器,如果当前服务器实例出现任何CREATE DATABASE、 ALTER DATABASE或DROP DATABASE事件,提示"有DATABASE事件出现,拒绝执行" ,并回滚操作。
时间: 2024-06-01 16:09:19 浏览: 10
可以使用以下代码实现:
CREATE TRIGGER tr_DDL_Database
ON ALL SERVER
FOR CREATE_DATABASE, ALTER_DATABASE, DROP_DATABASE
AS
BEGIN
PRINT '有DATABASE事件出现,拒绝执行'
ROLLBACK
END
注意:该触发器会拦截所有在服务器上执行的 CREATE DATABASE、ALTER DATABASE 和 DROP DATABASE 事件,并将它们回滚,并输出 "有DATABASE事件出现,拒绝执行" 的提示信息。该触发器在 ALL SERVER 上创建,即可作用于所有的数据库。
相关问题
SQLsever 创建DDL触发器,当删除"sdb_XXX"数据库的一个表时,提示"不能删除该表",并回滚删除表的操作。
可以使用如下的代码来创建该触发器:
CREATE TRIGGER trg_prevent_delete
ON DATABASE
FOR DROP_TABLE
AS
IF (ORIGINAL_DB_NAME() = 'sdb_XXX')
BEGIN
ROLLBACK
PRINT '不能删除该表'
END
该触发器会在删除表时触发,判断数据库名称是否为"sdb_XXX",如果是,则回滚删除表的操作,并打印提示信息"不能删除该表"。
怎么在sql sever中删除database中的触发器
要删除SQL Server数据库中的触发器,您需要执行以下步骤:
1. 打开SQL Server Management Studio,连接到您的数据库。
2. 在“对象资源管理器”中,找到您的数据库并展开它。
3. 展开“编程性对象”,然后展开“触发器”。
4. 找到您要删除的触发器,右键单击它,然后选择“删除”。
5. 在确认对话框中,选择“是”以删除触发器。
如果您想使用SQL语句删除触发器,您可以使用以下语句:
DROP TRIGGER trigger_name ON table_name;
其中,trigger_name是要删除的触发器的名称,table_name是触发器所依附的表的名称。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)