SQL Server 2008を搭載したVisual Studio2010で製品インスタンステーブルを使用してデータベースを構築していて、ProductId列を自動インクリメントする必要がありますが、列のプロパティメニューで属性を見つけることができません。必要に応じて、c#とasp.netを使用しています。テーブルを作成し、列を自動インクリメントに設定するコードを見てきましたが、これはコーディングの最初の回避策であるため、コードをどこに置くかわかりません。新しいテーブルを作成する唯一の方法は、それが理にかなっている場合、VS GUIを使用することです。
Identity仕様をyesに設定します。
サンプルSQL:
CREATE TABLE [dbo].[HomePageImages](
[RecordId] [int] IDENTITY(1,1) NOT NULL,
[AlternateText] [varchar](100) NOT NULL,
[ImageName] [varchar](50) NOT NULL,
[NavigateUrl] [varchar](200) NOT NULL,
[ImageUrl] AS ('/content/homepageimages/'+[ImageName]),
[DisplayFrom] [datetime] NULL,
[DisplayTo] [datetime] NULL,
CONSTRAINT [PK_HomePageImages] PRIMARY KEY CLUSTERED
(
[RecordId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SQL Server 08では、 "Identity"プロパティを 'Yes'に設定し、その初期値(デフォルトは1)とその増分(デフォルトは1)を定義します。
これにより、新しいレコードごとに1ずつ増加します。
sQLでidentity yesプロパティを使用する必要があります。
それは下部のプロパティウィンドウにあります-実行中のウィンドウではありません。
これにより、新しいレコードが挿入されるたびにIDが自動的にインクリメントされます。
Id値を取得するには、sqls SCOPE_IDENTITY()関数を使用して、作成されたIDを取得できます。
SSMSでは、オブジェクトエクスプローラーでテーブルを見つけて右クリックし、[デザイン]を選択します。自動インクリメントする列を選択し、その下の[列のプロパティ]セクションを確認します。 [+]記号の付いたID仕様項目が必要です。それを展開し、[Is Identity]で[Yes]を選択し、必要に応じて増分(新しい値を最後の値よりも1だけ大きくしたい場合があります)と開始値を「シード」として設定します(1は空のテーブルの場合は問題ありませんが、既存のデータがある場合は、シードを最大のレコードよりも大きくなるように設定します。