我有两个表(Users
,DeletedUsers
)和一个触发器Users_Delete
。当删除用户记录时,我想将 id 和最后一个rowversion
值(在删除之前)存储在DeletedUsers
表中。
因为SQL不允许一个表有多个类型rowversion
的列,我应该如何LastUserVersion
在DeletedUsers
表中存储?我应该使用什么数据类型?
示例代码:
CREATE TABLE [dbo].[Users] (
[ID] [uniqueidentifier] NOT NULL,
[Name] [nvarchar](100) NOT NULL,
[Version] [rowversion] NOT NULL
)
CREATE TABLE [dbo].[DeletedUsers] (
[ID] [uniqueidentifier] NOT NULL,
[LastUserVersion] [rowversion] NOT NULL, -- ERROR
[Version] [rowversion] NOT NULL
)
CREATE TRIGGER [dbo].[Users_Delete] ON [dbo].[Users]
AFTER DELETE
AS
BEGIN
SET NOCOUNT ON
INSERT INTO [dbo].[DeletedUsers]
(
ObjectID,
LastUserVersion
)
SELECT
ObjectID,
Version
FROM DELETED
SET NOCOUNT OFF
END