SQL Server 2008 を使用userAcccounts
して、Web サイトへの登録中にユーザーの詳細が保存されるテーブルがあるデータベースを維持しています。列はuserID
ID を持つ整数です。
私が気付いたのは、どういうわけか、列がいくつかの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]
この点で何か助けていただければ幸いです。また、その他の詳細が必要な場合はお知らせください。
ありがとう