SQL server 2005で自動番号フィールドを設定する方法
テーブルに新しいレコードが追加されたときに自動的に生成されてカラムに格納されるシーケンス番号を再定義したい場合、カラムの識別属性を変更することができます。識別属性は、各テーブルで1つのカラムにのみ設定できます。
ID 属性を持つ列には、テーブル内の各行を一意に識別する、システムが生成した連続した値(たとえば、従業員 ID 番号)が含まれます。ID 列を含むテーブルに値を挿入すると、Microsoft SQL Server は最後に使用された ID 値(ID 種属性)および列の作成時に指定された増分値(ID 増分値属性)に基づいて次の ID を自動的に生成します。
注意
Identity属性は、NULL値を許さず、データ型がdecimal, int, numeric, smallint, bigint, tinyintのカラムにのみ設定することができます。また、主キーカラムに ID 属性を設定することはできません。
列識別属性の変更
1. オブジェクト・エクスプローラーで、データ型を変更したい列があるテーブルを右クリックし、[修正] をクリックします。これにより、そのテーブルがテーブルデザイナーで開かれます。
変更したい列の[空白を許可する]チェックボックスをオフにします。
3. 列のプロパティ]タブで、[識別仕様]プロパティを展開します。
4. Yes Logo サブプロパティのグリッドセルをクリックし、ドロップダウン・リストから「Yes」を選択します。
Identification Seedのセルに値を入力します。この値は、テーブルの最初の行に割り当てられます。デフォルトでは値1が割り当てられます。
6. 6. 「quot;Identity Increment"」セルに値を入力する。この値は、後続の各行に対する識別子シードを基にしたインクリメントである。デフォルトでは、この値には1が割り当てられている。
例えば、受注テーブルに追加された各行に対して、10000から始まり、毎回10ずつ増加する5桁の受注IDを自動生成したいとします。10.
テーブルの ID プロパティを変更した場合、既存の ID 値は保持されます。新しい設定値は、テーブルに追加された新しい行にのみ適用されます。
注意
頻繁に削除操作を行うテーブルに ID カラムがある場合、ID 値の間に不連続性が発生します。この不連続性を避けるために、marker 属性を使用しないでください。
グリッド セル外をクリックするか、Tab キーで別のグリッド セルに移動すると、Identifier プロパティの新しい値がテーブル デザイナーで列に割り当てられます。Table Designer で変更を保存すると、これらの値がデータベースで有効になります。
テーブル作成時に自動番号付けされたフィールドを指定する
CREATE TABLE [dbo]. [UserInfor](
[UserID] [int] IDENTITY(100,2) NOT NULL,
[UserName] [nchar](10) NOT NULL,
)
説明 ユーザー情報テーブルUserInforを作成し、自動番号フィールドとしてUserIDを指定します。
ここで IDENTITY(100,2) は、フィールドの初期値を100とし、データ入力後1回目は100、2回目は102のように、それぞれ2ずつ増加することを意味します。
2. 自動採番されたフィールドの値を取得する
ここでは、@@IDENTITY を使用して、自動インクリメントフィールドの主キーの値を取得します。
(3) 自動採番フィールドの種の開始値のリセット
自動インクリメントフィールドを持つテーブルの内容をユーザーが消去した場合、そのフィールドによる開始値は元の値から増加しますが、DBCCコマンドで開始値をリセットすることができます。
DBCC CHECKIDENT (UserInfor,RESEED,0)
UserInforテーブルのオートインクリメントフィールドのシード開始値を0に設定。 データ挿入後のオートフィールドの値は0+インクリメント、インクリメントが1なら値は1
----------------------------------------------
テーブルを右クリック - > テーブルのデザイン - > idフィールド(クラスint型)を探す - > 特定 - > はい - > 種(初期値)を特定 - > 増分量を特定 - > OK
---------------------------------
create table mytest
(
id int primary key identity(1,1),--primary key, auto+1
name varchar(20) unique not null,--Duplicate not allowed, not allowed to be null
Age tinyint,
notetime smalldatetime default getdate()
)
insert into mytest values ('Zhang San',20,getdate())
insert into mytest (name,age)values ('Li Si',20)
関連
-
複数注文の場合の償却額の計算方法について
-
SQL 2005が設定できない問題を解決する
-
SQLServer 2005でサーバー名がない場合の2つの解決策
-
SQL Server 2005 復旧データベース詳細グラフィックチュートリアル
-
Sqlserver 2005のログファイルが大きすぎる削減する方法
-
文字列中の最大の部分的インクリメンタルを計算する SQL メソッド
-
SQL2005のプロバイダです。名前付きパイププロバイダエラー。40 SQL Server への接続を開くことができません
-
sql server 2005 データベースのバックアップ・リストア グラフィックチュートリアル
-
SQL Server Connect to Server Error 233 の解決法
-
SQL Server モバイルシステムデータベース
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SQL Server 2005のすべてのテーブルで、特定のカラムを検索する方法
-
Microsoft Sql server2005 のインストール手順のグラフィック詳細とよくある問題の解決法
-
SQL2005 ビューデッドロック ストアドプロシージャ sp_who_lock
-
WIN7でSQL Server 2005 Express Edition(Lite)のインストールと設定
-
SQL server 2005 をインストールすると、32 ビット ASP.NET は既に登録されているので、64 ビットのソリューションを登録する必要があるとの警告が表示される。
-
SQL Server 2005 インストールパス ディレクトリ変更方法まとめ
-
SQL Server 2005における外部結合の使用法
-
SQL Server 2005でリモートデータベース接続を開く方法
-
AccessからSQL Server 2005へのインポートの方法概要
-
Sql Server 2005 のポート 1433 で LAN アクセスを開放し、リモート接続を行う。