SQL Server 不跟踪插入行的顺序,因此在给定当前表结构的情况下,没有可靠的方法来获取该信息。即使employee_id
是一IDENTITY
列,依靠它来进行插入顺序也不是 100% 万无一失的(因为您可以使用 填补空白,甚至创建重复的 ID 值SET IDENTITY_INSERT ON
)。如果employee_id
是一IDENTITY
列,并且您确定没有手动乱序插入行,您应该能够使用查询的这种变体按顺序选择数据,最新的优先:
SELECT
ROW_NUMBER() OVER (ORDER BY EMPLOYEE_ID DESC) AS ID,
EMPLOYEE_ID,
EMPLOYEE_NAME
FROM dbo.CSBCA1_5_FPCIC_2012_EES207201222743
ORDER BY ID;
您可以对表进行更改以跟踪新行的此信息,但您将无法为现有数据派生它(在您进行此更改时,它们都会被我标记为已插入)。
ALTER TABLE dbo.CSBCA1_5_FPCIC_2012_EES207201222743
-- wow, who named this?
ADD CreatedDate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
请注意,这可能会破坏现有的代码INSERT INTO dbo.whatever SELECT/VALUES()
——例如,您可能必须重新访问您的代码并定义一个适当的、明确的列列表。