SQL ServerのID列

[電源を入れ]

まず、ID列と機能の定義
通例自動インクリメントとして知られているSQL ServerのID列でも知られている識別子列、。
カラムは、特性の次の3種類があります:
1、列データ・タイプは、小数点値のないタイプである
挿入(挿入)動作時に、2列の値が一定の規則に従ってシステムによって生成され、ヌル許可しない
3カラムの値が繰り返されない、テーブル内の各行を特定の効果を有し、各テーブルは、唯一のID列を有することができます。
これらの特徴の、広く設計データベースで使用されるID列となるよう。

第二に、ID列の構成
通常、三つの要素を指定し、ID列を作成するには:
1を、タイプ(タイプ)
以下のようにSQL Server 2000のは、ID列型は、数値型でなければなりません:
小数、整数、数値、SMALLINT、BIGINT、 TINYINT
選択されたとき一つは、ことに注意すべきであり、小数点以下の数値は、小数点以下の桁数はゼロでなければならない
。またによって表されるデータの種類毎に全ての数値範囲について注意

2、シード(種)は
、テーブルの最初の行の値に割り当てられていますデフォルトは

3インクリメント(増分)
デフォルトは1であり、2つの識別値の間の隣接増加。

第三に、作成し、ID列を変更し
、通常はEnterprise Managerで、ID列を作成および変更すると、SQL Serverのオンラインヘルプに比較的単純な参照してくださいされたEnterprise Managerの管理を使用して、のTransact-SQLステートメントを実現することができる
唯一の議論Transact-SQLの方法使用して

1を、あなたがテーブルを作成するときにID列を指定します
ID列はIDENTITYプロパティを確立するために使用されるので、SQL Serverでは、また、IDENTITYプロパティを持つID列またはIDENTITYカラムとして知ることができます。
次の例では、識別IDが含まれている名前、INT、およびシード1は、1列だけインクリメントさ作成
CREATE TABLE T_test
(IDENTITY(1,1)INT ID、
名前VARCHAR(50) )


従来の表に、2追加ID列の
例を以下シードと、ID列が1だけインクリメントされ、T_test ID、INTという名前の表に追加された
-テーブルを作成する
CREATE TABLE T_test
(名前VARCHARは、(50)


-データを挿入
INSERT T_test(名)VALUES(「ジョン・ドウ」)

-アイデンティティ列が増加
ALTERテーブルT_test
アイデンティティ(1,1)がINT ADD IDを

3列の同一性を有するセグメント・テーブルのか否かを判定する。
同一かどうかを表関数OBJECTPROPERTYを使用して決定することができます(識別)カラムの使用:
選択OBJECTPROPERTY(OBJECT_ID(「テーブル」)、「TableHasIdentity」)
そうであれば、1を返し、そうでなければ0

4列がID列であるか否かを判定する
同一かどうかの列を決定するために、COLUMNPROPERTY関数を使用することができますプロパティの使用方法
SELECT COLUMNPROPERTY(OBJECT_ID(「テーブル名」)「列名」、「IsIdentity」)
の列がID列である場合は、それ以外の場合は、1 0を返す

4クエリをテーブルの列名のID列
SQL Serverでの準備ができていませんこの機能を実現する機能、を達成するには、以下のSQLステートメント
SELECT COLUMN_NAME INFORMATION_SCHEMA.COLUMNS FROM
WHERE TABLE_NAMEは= 'テーブル' COLUMNPROPERTY AND(
OBJECT_ID( 'テーブル')、COLUMN_NAME、 'IsIdentity')=を1

。5、参照列を識別
場合SQLステートメントの識別基準列がキーワードIDENTITYCOLのの代わりに使用することができる
IDは、例1における線に等しい照会し、例えば、
以下の二つは等価クエリある
T_test FROM IDENTITYCOL SELECT * = 1
SELECT * WHERE ID = T_test FROM 1

6識別列のシード値を取得する
使用、関数IDENT_SEEDを使用して:
SELECT IDENT_SEED(「テーブル」)

7、ID列が増分量取得
機能IDENT_INCRを使用することができるが、使用:
SELECT IDENT_INCR(「テーブル」)

8つの取得指定したテーブルのID値が最後に生成され
、関数IDENT_CURRENTを使用して使用します。
SELECT IDENT_CURRENT( '表名')
注:表が作成したばかりのID列を含む場合、任意の挿入操作を通過している、シード値を使用して得られたID列IDENT_CURRENT関数の値であり、それはデータベース・アプリケーションの開発に特に留意すべきです。

ID列の問題カウント1つの開始9. [SQL Serverの]
SQL Serverの時間を、私たちは時々 、再スタートカウントに、再度追加レコードの後、テーブル内のデータを消去するには1からID列を必要としています。
私達はちょうど次のコマンドを実行し、記録の前に挿入する必要があります:
DBCC CHECKIDENT(テーブル名、RESEEDを、0)
TRUNCATE TABLEは、だけでなく、ために高効率で行うことができます。
各操作はログに記録削除させていただきますと、そう非効率的な、切り捨てテーブルは一回限り、ずっと速く効率です。
しかし、切り捨て表は、限定されるものではなく、例えば、ID列は、別のテーブルへの外部キーであり、電流値の列が行2から出発して、1である識別が挿入され、
DBCC CHECKIDENT(テーブル名、RESEED、0)が偶数で使用することができケースの外部キー。

ます。https://www.cnblogs.com/jenneyblog/archive/2012/09/11/IDEntity.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_33841503/article/details/93370512