Sql server 没有使用触发器的魔法表,即使在StackOverflow上也找不到解释

Sql server 没有使用触发器的魔法表,即使在StackOverflow上也找不到解释,sql-server,Sql Server,我读过很多像这样的文章 但是没有人解释魔法表的非触发器使用,我已经挣扎了一周了。这里有几个使用OUTPUT子句w/o使用触发器的例子 USE AlignDev; GO IF OBJECT_ID('tempdb..#ChangeTracking', 'U') IS NULL BEGIN -- DROP TABLE #ChangeTracking CREATE TABLE #ChangeTracking ( ChangeDT DATETIME NOT NULL DEF

我读过很多像这样的文章


但是没有人解释魔法表的非触发器使用,我已经挣扎了一周了。

这里有几个使用OUTPUT子句w/o使用触发器的例子

USE AlignDev;
GO

IF OBJECT_ID('tempdb..#ChangeTracking', 'U') IS NULL 
BEGIN   -- DROP TABLE #ChangeTracking
    CREATE TABLE #ChangeTracking (
        ChangeDT DATETIME NOT NULL DEFAULT (GETDATE()),
        oID INT NULL,
        nID INT NULL,
        oCol_1 VARCHAR(10) NULL,
        nCol_1 VARCHAR(10) NULL,
        oCol_2 VARCHAR(10) NULL,
        nCol_2 VARCHAR(10) NULL,
        oCol_3 VARCHAR(10) NULL,
        nCol_3 VARCHAR(10) NULL
        );
END;


IF OBJECT_ID('tempdb..#TestData', 'U') IS NULL 
BEGIN   -- DROP TABLE #TestData
    CREATE TABLE #TestData (
        ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY CLUSTERED,
        Col_1 VARCHAR(10) NULL,
        Col_2 VARCHAR(10) NULL,
        Col_3 VARCHAR(10) NULL
        );
END

--=================================================================

INSERT #TestData (Col_1, Col_2, Col_3) 
OUTPUT Inserted.* INTO #ChangeTracking (nID, nCol_1, nCol_2, nCol_3)
    SELECT 'abc', 'def', 'ghi' UNION ALL 
    SELECT 'jkl', 'mno', '123' UNION ALL 
    SELECT '346', '789', 'qaz' UNION ALL 
    SELECT 'wsx', 'edc', 'rfv' UNION ALL 
    SELECT 'tgb', 'yhn', 'ujm' UNION ALL 
    SELECT 'plm', 'uhb', 'tfc';

-- see what's been captured so far...
SELECT * FROM #TestData td;
SELECT * FROM #ChangeTracking ct;

------------------------------------------------

UPDATE td SET 
    td.Col_1 = 'xxx',
    td.Col_3 = 'zzz'
    OUTPUT Deleted.*, Inserted.*
    INTO #ChangeTracking (oID, oCol_1, oCol_2, oCol_3, nID, nCol_1, nCol_2, nCol_3)
FROM 
    #TestData td
WHERE 
    td.ID IN (2, 4, 6);

-- see what's been captured so far...
SELECT * FROM #TestData td;
SELECT * FROM #ChangeTracking ct;

------------------------------------------------

DELETE td
OUTPUT Deleted.* INTO #ChangeTracking ( oID, oCol_1, oCol_2, oCol_3)
FROM 
    #TestData td;

-- see what's been captured so far...
SELECT * FROM #TestData td;
SELECT * FROM #ChangeTracking ct;
嗯,,
据我所知,Jason

Magic tables不是微软自己用来描述表格的术语。他们只是指他们的名字被插入和删除。不带触发器-您正在寻找吗?不带触发器,我的意思是,任何使用魔法表的示例,不包括在SPs中插入和删除的。谢谢