SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

SQLServerのSEQUENCE

シーケンス 順序順に並べられた整数のセットです。多くのアプリケーションの要件を満たすには、テーブルの各行に主キーと同様の一意の値を含める必要があるため、シーケンスはデータベースでよく使用されます。

この記事では、SQLServerでシーケンスを作成および削除する方法の構文と例を示します。

CREATE SEQUENCE(シーケンスの作成)

構文

シーケンスを作成するには、次の構文があります。

  CREATE SEQUENCE [schema.] Sequence_name 
[AS datatype]
[START WITH value]
[INCREMENT BY value]
[MINVALUE value | NO MINVALUE]
[MAXVALUE value | NO MAXVALUE]
[CYCLE | NO CYCLE]
[CACHE value | NO CACHE];

パラメータ:

  1. ASデータ型: BIGINT、INT、TINYINT、SMALLINT、DECIMAL、またはNUMERICタイプにすることができます。特定のタイプを指定しない場合、プログラムはデフォルトでBIGINT形式のデータ型になります。
  2. START WITH value: シーケンスが返す値。
  3. 値による増分 :正または負のシーケンスを増減するための一連のルール。ここでの値が正の場合、シーケンスは増分値のシーケンスになります。反対は負であり、シーケンスは減少します。
  4. MINVALUE値 :文字列の最小値。
  5. 最小値なし :最小値を指定しないでください。
  6. MAXVALUE値 :文字列の最大値。
  7. 最大値なし :最大値を指定しないでください。
  8. サイクル :シーケンスは、シーケンスが完了すると最初から開始されます。
  9. サイクルなし :シーケンスは文字列の最後で失敗し、完了すると再開されません。
  10. CACHE値: ディスクIOを最小限に抑えるために、キャッシュ(キャッシュ)に保存します。
  11. キャッシュなし: キャッシュに保存しないでください。
  CREATE SEQUENCE contacts_seq 
AS BIGINT
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 99999
NO CYCLE
CACHE 10;

ここでは、 contacts_seqという名前のシーケンスを作成しました。 、値1から開始して、次の各値は1単位ずつ増加します(つまり、2、3、4)。文字列は約10個の値をキャッシュに保存します。シーケンスの最大値は99999であり、シーケンスが最大値で終了した後は文字列を再開しません。

上記のコマンドは、次のように簡単に実行することもできます。

  CREATE SEQUENCE contacts_seq 
START WITH 1
INCREMENT BY 1;

これで、自動番号フィールドをシミュレートするシーケンスが作成されました。次に、このシーケンスから値を出力するには、 NEXT VALUE FORを使用します。 コマンド

  SELECT NEXT VALUE FOR contacts_seq; 

このステートメントは、contacts_seq。から次の値を取得します。 次に、実行に必要なコマンドを使用します。例:

  INSERT INTO contacts 
(contact_id, last_name)
VALUES
(NEXT VALUE FOR contacts_seq, 'Smith');

このINSERTステートメントは、新しいレコードを連絡先テーブルに挿入します。 contact_id フィールドには、 contacts_seq、から次の番号が割り当てられます last_name フィールドは「スミス」になります。

DROP SEQUENCE(シーケンスの削除)

シーケンスが作成されると、いくつかの理由でデータベースからシーケンスを削除したい場合もあります。

構文

シーケンスを削除するには、次の構文があります。

  DROP SEQUENCE sequence_name; 

パラメータ:

sequence_name: 削除するシーケンス名。

  DROP SEQUENCE contacts_seq; 

このコマンドを実行すると、 contacts_seqが削除されます。 データベースからの文字列。

シーケンスプロパティ

シーケンスのプロパティをテストするには、次の構文があります。

SELECT * FROM sys.sequences WHERE name = ' sequence_name' ;

パラメータ:

sequence_name:The プロパティをテストする文字列の名前。

  SELECT * 
FROM sys.sequences
WHERE name = 'contacts_seq';

この例では、 sys.sequencesから情報をクエリします。 システムとcontacts_seqの結果を取得します 文字列

Sys.sequences システムには次の列が含まれています:

コレクション ステートメントで作成されたシーケンスの名前CREATESEQUENCEobject_idシーケンスIDのprincipal_idオブジェクトのIDprincipal(数値)schema_idシーケンスのスキーマIDparent_object_id親オブジェクトタイプのIDSO type_desc SEQUENCE_OBJECT create_dateCREATESEQUENCEで作成されたシーケンスの日付/時刻コマンドmodify_date最終変更シーケンスの日付/時刻is_ms_shipped値0または1is_published値0または1is_schema_published値0または1start_valueシーケンス増分の開始値シーケンスの増加/減少のルール値minimum_value文字列の最小値maximum_valueis_cycling文字列の最大値0または1。0=CYCLEなし、1 =CYCLE is_cached値0または1、0 =CACHEなし、1 =CACHE cache_size is_cached=1の場合のメモリサイズバッファシーケンスのシーケンスの最大範囲スケールのタイプcurrent_valueシーケンスから取得された最後の値is_exhausted値0または1。0=順番に複数の値。 1=値なし


  1. SQLServerのISNOTNULL条件

    このSQL Serverチュートリアルでは、ISNOTNULL条件の使用方法と特定の構文および例を示します。 SQLServerのISNOTNULL条件は、値がNOTNULLかどうかを確認するために使用されます。テーブルのNULL値は、空のフィールド、つまり値のないフィールドの値です。 構文構文はNULLではありません expression IS NOT NULL 変数名または変数値 注 値NOTNULLが返される式はTRUEです 値NULLが返される式はFALSEです 例-SELECTコマンド SQLServerのSELECTステートメントのISNOTNULL条件の例。 SE

  2. MS SQL Serverとは何ですか?

    SQL Serverとは何ですか? RDBMSに基づいてMicrosoftが開発したソフトウェア。 また、ORDBMS(オブジェクトリレーショナルデータベース管理システム)。 独立したプラットフォーム。 ソフトウェアは、コマンドラインインターフェイスとGUIインターフェイスの両方を使用します。 SQL言語のサポート(以前のSEQUEL-構造化された英語のクエリ言語)-これはIBMの製品です。 SQLServerを使用する目的 データベースを作成します。 データベースを維持します。 SSASによるデータ分析-SQLServerAnalysisServices。 SSRSによるレポートの作