小编stu*_*ith的帖子

为什么对带有 INSTEAD OF UPDATE 触发器的表执行 UPDATE 操作时会执行聚集索引插入以及聚集索引更新?

我将从一个非常简单的例子开始:两个表,都具有相同的架构,聚集在 PK 上,但其中一个有一个INSTEAD OF UPDATE触发器:

CREATE TABLE Standard
(
    PK  UNIQUEIDENTIFIER PRIMARY KEY CLUSTERED,
    V   INT NOT NULL
)
GO

CREATE TABLE InsteadOf
(
    PK  UNIQUEIDENTIFIER PRIMARY KEY CLUSTERED,
    V   INT NOT NULL
)
GO

INSERT Standard (PK, V) VALUES ('1E58B555-B073-471E-B576-4B09C8E18976', 0)
INSERT InsteadOf (PK, V) VALUES ('1E58B555-B073-471E-B576-4B09C8E18976', 0)
GO

CREATE TRIGGER TR_InsteadOf_Update ON InsteadOf INSTEAD OF UPDATE
AS
BEGIN
    DECLARE @PK UNIQUEIDENTIFIER
    DECLARE @V INT
    DECLARE @cursor CURSOR
    SET @cursor = CURSOR FOR SELECT PK, V FROM …
Run Code Online (Sandbox Code Playgroud)

sql-server clustered-index

10
推荐指数
1
解决办法
2035
查看次数

标签 统计

clustered-index ×1

sql-server ×1