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];
パラメータ:
- ASデータ型: BIGINT、INT、TINYINT、SMALLINT、DECIMAL、またはNUMERICタイプにすることができます。特定のタイプを指定しない場合、プログラムはデフォルトでBIGINT形式のデータ型になります。
- START WITH value: シーケンスが返す値。
- 値による増分 :正または負のシーケンスを増減するための一連のルール。ここでの値が正の場合、シーケンスは増分値のシーケンスになります。反対は負であり、シーケンスは減少します。
- MINVALUE値 :文字列の最小値。
- 最小値なし :最小値を指定しないでください。
- MAXVALUE値 :文字列の最大値。
- 最大値なし :最大値を指定しないでください。
- サイクル :シーケンスは、シーケンスが完了すると最初から開始されます。
- サイクルなし :シーケンスは文字列の最後で失敗し、完了すると再開されません。
- CACHE値: ディスクIOを最小限に抑えるために、キャッシュ(キャッシュ)に保存します。
- キャッシュなし: キャッシュに保存しないでください。
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=値なし-
SQLServerのISNOTNULL条件
このSQL Serverチュートリアルでは、ISNOTNULL条件の使用方法と特定の構文および例を示します。 SQLServerのISNOTNULL条件は、値がNOTNULLかどうかを確認するために使用されます。テーブルのNULL値は、空のフィールド、つまり値のないフィールドの値です。 構文構文はNULLではありません expression IS NOT NULL 変数名または変数値 注 値NOTNULLが返される式はTRUEです 値NULLが返される式はFALSEです 例-SELECTコマンド SQLServerのSELECTステートメントのISNOTNULL条件の例。 SE
-
MS SQL Serverとは何ですか?
SQL Serverとは何ですか? RDBMSに基づいてMicrosoftが開発したソフトウェア。 また、ORDBMS(オブジェクトリレーショナルデータベース管理システム)。 独立したプラットフォーム。 ソフトウェアは、コマンドラインインターフェイスとGUIインターフェイスの両方を使用します。 SQL言語のサポート(以前のSEQUEL-構造化された英語のクエリ言語)-これはIBMの製品です。 SQLServerを使用する目的 データベースを作成します。 データベースを維持します。 SSASによるデータ分析-SQLServerAnalysisServices。 SSRSによるレポートの作