2

2 つのテーブル ( UsersDeletedUsers) とトリガーがありUsers_Deleteます。rowversionユーザー レコードが削除されると、ID と最後の値 (削除される前) をDeletedUsersテーブルに格納したいと考えています。

SQL ではテーブルに同じ型の複数の列を使用できないため、rowversionテーブルにどのように格納すればよいですか? どのデータ型を使用すればよいですか?LastUserVersionDeletedUsers

サンプルコード:

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
4

2 に答える 2