0

SQL Server 2008 を使用userAcccountsして、Web サイトへの登録中にユーザーの詳細が保存されるテーブルがあるデータベースを維持しています。列はuserIDID を持つ整数です。

私が気付いたのは、どういうわけか、列がいくつかのIDをスキップしていることです(IDの乱数、時には5、11、10などをスキップします)。つまり、IDが連続していません。ここで同様の質問を読んで、同様の問題を提案しました

「ID シーケンスは、挿入が試行されるたびにインクリメントされます -- これには、INSERT の失敗またはロールバックが含まれます」

ログでエラーを確認しましたが、ID がスキップされた期間中にエラーはありませんでした。また、アカウントを削除する必要がないため、私の挿入はロールバックが発生するトランザクション内にはありません。また、登録中に他のテーブルが関与することはありません

それにもかかわらず、ID は一意であるため、これは大きな問題ではありませんが、私が知りたいのは、この動作の理由です。おそらく私は何かを見落としています。

この種の動作が発生する可能性がある他のシナリオはありますか? つまり、ID 列がいくつかの ID をスキップしていますか? これは同時アクセスの問題でしょうか?

これがテーブルの作成スクリプトです。

CREATE TABLE [dbo].[UserAccounts](
    [AccountID] [int] IDENTITY(1,1) NOT NULL,
    [FirstName] [varchar](30) NULL,
    [LastName] [varchar](30) NULL,
    [Gender] [varchar](10) NULL,
    [Email] [varchar](150) NULL,
    [EmailVerified] [bit] NULL,
    [UserName] [varchar](30) NULL,
    [Password] [varchar](50) NULL,
    [ProfilePicture] [varchar](150) NULL,
    [BackgroundPicture] [varchar](150) NULL,
    [DateOfBirth] [smalldatetime] NULL,
    [CreateDate] [smalldatetime] NULL,
    [LastUpdatedOn] [smalldatetime] NULL,
    [Points] [int] NULL,
    [CurrentBadge] [varchar](30) NULL,
    [FBID] [varchar](50) NULL,
    [TwitterID] [varchar](50) NULL,
    [Abused] [int] NULL,
    [isActive] [bit] NULL,
    [AccountTypeID] [int] NULL,
    [DateStamp] [timestamp] NOT NULL,
    [Location] [varchar](50) NULL,
    [About] [varchar](250) NULL,
    [UsingBackgroundPicture] [bit] NULL,
 CONSTRAINT [PK__UserAcco__349DA5867F60ED59] PRIMARY KEY CLUSTERED 
(
    [AccountID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

この点で何か助けていただければ幸いです。また、その他の詳細が必要な場合はお知らせください。

ありがとう

4

1 に答える 1