C# 是否返回调用触发器后修改的表的记录私钥序列号?

C# 是否返回调用触发器后修改的表的记录私钥序列号?,c#,sql-server,stored-procedures,database-trigger,C#,Sql Server,Stored Procedures,Database Trigger,在SQL Server上,如何获取调用触发器后更改的表的记录私钥序列号 如果我对一个表进行更改(INSERT、UPDATE、DELETE),我需要记录的主键,该记录的更改导致调用触发器。我怎样才能在触发程序中得到这个 Transact-SQl存储过程代码(可以,但我不知道如何继续): 假设您有一个带有主键(Id)和其他列的dbo.Users表,您可以添加一个触发器来记录已更改的行: CREATE TRIGGER [dbo].[UpdateCounts] ON [dbo].[Users] FOR

在SQL Server上,如何获取调用触发器后更改的表的记录私钥序列号

如果我对一个表进行更改(INSERT、UPDATE、DELETE),我需要记录的主键,该记录的更改导致调用触发器。我怎样才能在触发程序中得到这个

Transact-SQl存储过程代码(可以,但我不知道如何继续):


假设您有一个带有主键(Id)和其他列的dbo.Users表,您可以添加一个触发器来记录已更改的行:

CREATE TRIGGER [dbo].[UpdateCounts]
ON [dbo].[Users] FOR INSERT, UPDATE, DELETE
AS
BEGIN

    INSERT INTO dbo.Log (AffectedId)
    SELECT Inserted.Id FROM Inserted    
    UNION
    SELECT Deleted.Id FROM Deleted
END
GO
添加的行将在插入的表中有一个条目,更新的行将在插入的表和删除的表中都有一个条目(因此联合删除重复项),删除的行将在删除的表中有一个条目


在我的示例中,我只是将这些Id写入dbo.Logs表,但希望您能理解。

假设您有一个带有主键(Id)和其他列的dbo.Users表,您可以添加一个触发器来记录已更改的行:

CREATE TRIGGER [dbo].[UpdateCounts]
ON [dbo].[Users] FOR INSERT, UPDATE, DELETE
AS
BEGIN

    INSERT INTO dbo.Log (AffectedId)
    SELECT Inserted.Id FROM Inserted    
    UNION
    SELECT Deleted.Id FROM Deleted
END
GO
添加的行将在插入的表中有一个条目,更新的行将在插入的表和删除的表中都有一个条目(因此联合删除重复项),删除的行将在删除的表中有一个条目


在我的示例中,我只是将这些ID写入dbo.Logs表,但希望您能理解。

您可以访问触发器中插入的和删除的伪表中受DML语句影响的行(复数)。您想做什么?可能不需要使用触发器,也不需要更新另一个表上的计数。对于初学者来说,这比使用
count(*)
或查询
sys.partitions
来获取特定表的行计数要昂贵。所有版本中是否都有一项功能可用于返回自上次检查以来对表所做的所有更改我需要修改或创建记录的PK序列号,因为我可以使用序列号检索另一个字段的值。您是说要从相关表加载数据?那么,这个问题的目的是什么?为什么不在SELECT中使用
JOIN
,在需要时加载相关数据呢?数据库模式的非规范化不会提高性能,除非该模式是专门为报告而编写的。在这种情况下,将不会使用触发器。如果联接速度慢,请修复它们-可能缺少索引?不良的
哪里
条件?对模式进行非规范化并不能解决根本问题。这将使您的数据库更难维护,并使您暴露于不一致的数据中。您可以访问触发器中插入的和删除的伪表中受DML语句影响的行(复数)。您想做什么?可能不需要使用触发器,也不需要更新另一个表上的计数。对于初学者来说,这比使用
count(*)
或查询
sys.partitions
来获取特定表的行计数要昂贵。所有版本中是否都有一项功能可用于返回自上次检查以来对表所做的所有更改我需要修改或创建记录的PK序列号,因为我可以使用序列号检索另一个字段的值。您是说要从相关表加载数据?那么,这个问题的目的是什么?为什么不在SELECT中使用
JOIN
,在需要时加载相关数据呢?数据库模式的非规范化不会提高性能,除非该模式是专门为报告而编写的。在这种情况下,将不会使用触发器。如果联接速度慢,请修复它们-可能缺少索引?不良的
哪里
条件?对模式进行非规范化并不能解决根本问题。这将使您的数据库更难维护,并使您暴露于不一致的数据中