我认为您正在寻找magic tables
SQL Server 中非官方调用的内容。
表“ INSERTED
”和“ DELETED
”被称为 SQL Server 的魔术表。我们在数据库中看不到这些表。但是我们可以从“ TRIGGER
”访问这些表
当我们将记录插入表中时,INSERTED
将创建魔术表“”在该表中,当前插入的行将可用。我们可以在“ TRIGGER
”中访问这条记录。
当我们在创建触发器的表上更新一条记录时,魔术表“ INSERTED
”和“ DELETED
”都会创建,更新记录的旧数据将在“DELETED”表中可用,新数据将在“INSERTED”表,同时在触发器内部访问它们。
当我们从表中删除记录时,将创建魔术表“ DELETED
”在该表中,当前删除的行将可用。我们可以在“ TRIGGER
”中访问这条记录。
例子:
以下代码解释了魔术表“ INSERTED
”:
CREATE TRIGGER LogMessage
ON EMP
FOR INSERT
AS
DECLARE @EMPNAME varchar(50)
SELECT @EMPNAME= (SELECT EMPNAME FROM INSERTED)
INSERT INTO LOGTABLE(UserId,Message) values (@EMPNAME,'Record Added')
GO
以下代码解释魔术表“ DELETED
”
CREATE TRIGGER LogMessage
ON EMP
FOR DELETE
AS
DECLARE @EMPNAME varchar(50)
SELECT @EMPNAME= (SELECT EMPNAME FROM DELETED)
INSERT INTO LOGTABLE(UserId,Message) values (@EMPNAME,'Record Removed')
GO
来源(这些文章和作者的所有功劳):
http://www.codeproject.com/Questions/285423/what-is-magic-table-different-types-of-magic-table
http://www.dotnetspider.com/resources/29332-Magic-tables-SQL -服务器.aspx
. .
或者
,您可以尝试:
使用更改跟踪函数获取更改,其 MSDN 链接解释了如何使用内置函数跟踪更改。
CHANGETABLE(CHANGES …)
功能
此行集函数用于查询更改信息。该函数查询存储在内部更改跟踪表中的数据。该函数返回一个结果集,其中包含已更改的行的主键以及其他更改信息,例如该行的操作、更新的列和版本。
CHANGE_TRACKING_CURRENT_VERSION()
功能
用于获取下次查询更改时将使用的当前版本。此版本表示最后提交的事务的版本。
CHANGE_TRACKING_MIN_VALID_VERSION()
功能
用于获取客户端可以拥有并仍然从 CHANGETABLE() 获取有效结果的最低有效版本。客户端应根据此函数返回的值检查上次同步版本。如果上次同步版本小于此函数返回的版本,客户端将无法从 CHANGETABLE() 获得有效结果,必须重新初始化。
请参阅http://technet.microsoft.com/en-us/library/cc280358%28v=sql.105%29.aspx上的语法和用法
希望能帮助到你。