举个实例, 验证 SQL SERVER 2012 中触发器是行级还是语句级的。
时间: 2024-02-27 13:58:28 浏览: 28
在 SQL Server 2012 中,触发器可以是行级触发器或语句级触发器,具体取决于触发器的类型。行级触发器在每行数据受到影响时都会被触发,而语句级触发器在每个SQL语句执行时只会被触发一次。
我们可以通过以下步骤来验证触发器的类型:
1. 创建一张测试表,例如:
```
CREATE TABLE TestTable (
ID INT PRIMARY KEY,
Name VARCHAR(50),
Age INT
);
```
2. 创建一个行级触发器,例如:
```
CREATE TRIGGER TestTrigger
ON TestTable
FOR INSERT, UPDATE, DELETE
AS
BEGIN
PRINT 'Row-level trigger fired.'
END;
```
3. 创建一个语句级触发器,例如:
```
CREATE TRIGGER TestTrigger
ON TestTable
AFTER INSERT, UPDATE, DELETE
AS
BEGIN
PRINT 'Statement-level trigger fired.'
END;
```
4. 分别执行INSERT、UPDATE、DELETE语句来验证触发器的类型。例如:
```
INSERT INTO TestTable (ID, Name, Age) VALUES (1, 'Alice', 20);
UPDATE TestTable SET Age = 25 WHERE ID = 1;
DELETE FROM TestTable WHERE ID = 1;
```
执行后,我们可以在消息窗口中看到触发器的输出。如果输出为"Row-level trigger fired.",则说明触发器是行级触发器;如果输出为"Statement-level trigger fired.",则说明触发器是语句级触发器。