001、新增操作的后置触发器,对于自增列或者缺省值的列,inserted是否可以取到数?
可以的
002、turuncate table与触发器
truncate不是ddl,它是删除表中的所有行或表中指定的分区,不记录单个行删除操作。truncate table不触发DML触发器,因为它不直接处理具体的行;truncate table 不触发DDL触发器,不是DDL(我理解是不改变任何系统架构),没有与之对应的DDL事件。
003、查询触发器
--查询触发器
select * from sys.triggers
004、创建DDL触发器
--生效范围:数据库级别 on database,服务器级别 on server
--数据库级别,创建
CREATE TRIGGER truncate_to_delete
ON DATABASE
FOR ALTER_TABLE
AS
PRINT 'You must disable Trigger "safety" to drop or alter tables!'
ROLLBACK;
--删除ddl触发器需要加on对象
drop trigger truncate_to_delete on DATABASE
--服务器级别,创建
IF EXISTS (SELECT * FROM sys.server_triggers
WHERE name = 'ddl_trig_database')
DROP TRIGGER ddl_trig_database
ON ALL SERVER;
GO
CREATE TRIGGER ddl_trig_database
ON ALL SERVER
FOR CREATE_DATABASE
AS
PRINT 'Database Created.'
SELECT EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)')
GO
--删除
DROP TRIGGER ddl_trig_database
ON ALL SERVER;
GO