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