SQLsever 创建DDL触发器,当删除"sdb_XXX"数据库的一个表时,提示"不能删除该表",并回滚删除表的操作。
时间: 2024-02-11 17:45:45 浏览: 106
可以使用如下的代码来创建该触发器:
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中创建一个DDL触发器,通过它能阻止对DingBao数据库表结构的修改或表的删除。
可以通过如下DDL触发器来阻止对DingBao数据库表结构的修改或表的删除:
CREATE TRIGGER tr_check_ddl
ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
BEGIN
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = EVENTDATA().value('(/EVENT_INSTANCE/ObjectID)[1]', 'int') AND type = 'U')
BEGIN
RAISERROR('Tables cannot be modified or dropped in DingBao database!', 16, 1)
ROLLBACK
END
END
该触发器会在每次发生表删除或修改时被触发,并且回滚该操作。如需启用该触发器,请使用如下语句:
ENABLE TRIGGER tr_check_ddl ON DATABASE
请注意,这仅仅是一个简单的演示,如果您有更复杂的需求,需要对代码进行修改。
用sql sever创建Insert触发器,当添加一个学生时,调整数据表N中相应的数据。
要创建一个SQL Server Insert触发器来同步数据表N,当你向"Students"表中插入一个新的学生记录时,可以按照以下步骤进行:
1. **创建触发器**:
首先,我们需要在"data架构"(假设为dbo)下创建一个名为`Trg_InsertStudentInTableN`的触发器,它将在`Students`表的INSERT操作后启动。这可以通过下面的T-SQL脚本完成:
```sql
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Trg_InsertStudentInTableN]') AND type in (N'TR'))
BEGIN
CREATE TRIGGER Trg_InsertStudentInTableN
ON dbo.Students
AFTER INSERT
AS
BEGIN
DECLARE @NewStudentId INT = (SELECT TOP 1 Id FROM inserted)
UPDATE TableN
SET ColumnN = /* 根据需要更新的逻辑,比如加1或其他计算 */
WHERE ConditionForMatchingInTableN = @NewStudentId
END;
END
GO
```
在上述代码中,你需要替换`TableN`为你实际的数据表名,`ColumnN`为目标同步的字段,`Id`为`Students`表的新插入学生的标识符,`ConditionForMatchingInTableN`用于匹配`TableN`中需要更新的记录。
2. **触发器行为**:
当新的学生记录插入到`Students`表时,触发器会执行`UPDATE`语句,根据条件找到`TableN`中的相应记录并进行更新。
3. **触发器注意事项**:
- 请确保触发器内的`UPDATE`操作不会引起无限循环,即不要让触发器自身在更新过程中再次触发。
- 如果`TableN`中的记录与`Students`表无关,或者不需要实时同步,可以考虑其他更合适的数据流控制策略。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)