BEGIN INSERT INTO student(s_id,sname,ssex,sbirthday, sdepartment,smajor,spoliticalStatus,photo,smemo) VALUES (@s_id, @sname, @ssex, @sbirthday, @sdepartment,@smajor,@spoliticalStatus,@photo,@smemo) END END 4、查看DML触发器 查看已经设计好的DML触发器可以利用系统存储过程来查看。使用系统存储过程sp_help可以了解触发器的名称、类型、创建时间等基本信息,其语法格式为: sp_help 触发器名 例如:exec sp_help student_insert,可以看到触发器student_insert的基本情况。 使用sp_helptext可以查看触发器的文本信息,其语法格式为: sp_helptext 触发器名 例如:exec sp_helptext student_insert,可以看到触发器student_insert的具体文本内容。 5、修改DML触发器 修改DML触发器的内容可以使用SQL Server Management Studio图形界面,在触发器名上点击右键,选择修改即可。修改完毕后,单击执行按钮运行。 如果只要修改触发器的名称,也可以使用系统存储过程sp_rename。 6、删除DML触发器 删除DML触发器可以使用SQL Server Management Studio图形界面,在触发器名上点击右键,选择删除,此时会弹出删除对象对话框,在该对话框中单击确定按钮,删除操作完成。也可使用SQL语句删除触发器:Drop Trigger 触发器名 注意:如果一个数据表被删除,那么SQL Server会自动将与该表相关的的触发器删除。 9.2.3 DDL触发器 DDL触发器是SQL Server 2005开始新增的一个触发器类型,是一种特殊的触发器,它在响应数据定义语言(DDL)语句时触发,一般用于在数据库中执行管理任务。 DDL触发器并不在响应对表或视图的 UPDATE、INSERT 或DELETE语句时执行存储过程。它们主要在响应数据定义语言 (DDL)语句执行存储过程。这些语句包括 CREATE、ALTER、DROP、GRANT、DENY、REVOKE和UPDATE STATISTICS 等语句。执行DDL 式操作的系统存储过程也可以激发DDL触发器。 DDL触发器与DML触发器的不同之处如下: DML触发器在INSERT、UPDATE和DELETE语句上操作。 DDL触发器在CREATE、ALTER、DROP和其他DDL语句上操作。 只有在完成Transact-SQL语句后才运行DDL触发器。DDL 触发器无法作为INSTEAD OF 触发器使用。 DDL触发器不会创建插入(inserted)的和删除(deleted)的表,但是可以使用EVENTDATA函数捕获有关信息。 1、设计DDL触发器 (1)建立DDL触发器 建立DDL触发器的语法代码如下: CREATE TRIGGER trigger_name ON { ALL SERVER | DATABASE } [ WITH ddl_trigger_option [ ,...n ] ] { FOR | AFTER } { event_type | event_group } [ ,...n ] AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME method specifier [ ; ] } 其中: ALL SERVER:将DDL 或登录触发器的作用域应用于当前服务器。如果指定了此参数,则只要当前服务器中的任何位置上出现 event_type 或event_group,就会激发该触发器。 DATABASE:将DDL 触发器的作用域应用于当前数据库。如果指定了此参数,则只要当前数据库中出现 event_type 或event_group,就会激发该触发器。 FOR | AFTER:AFTER指定DML 触发器仅在触发SQL语句中指定的所有操作都已成功执行时才被触发。所有的引用级联操作和约束检查也必须在激发此触发器之前成功完成。如果仅指定FOR关键字,则AFTER为默认值。 event_type:执行之后将导致激活DDL触发器的 Transact-SQL 语言事件的名称。 激活DDL触发器的事件包括两种:一种是在DDL触发器作用在当前数据库情况下可以使用
原创力文档

文档评论(0)