[解決済み] 塩基配列と同一性
質問
SQL Server 2012 を導入しました。
Sequence
が導入されました。Oracle や Postgres と同じです。IDよりもシーケンスが優先されるのはどこでしょうか?また、なぜシーケンスが必要なのでしょうか?
どのように解決するのですか?
私はあなたがあなたの答えを見つけると思います ここで
<ブロッククオートカラムの identity 属性を使用すると、簡単に自動インクリメントの数値を生成することができます。 自動インクリメントの数値(これは主キーとしてよく使われます)を簡単に生成できます。また シーケンスでは、挿入時にテーブルのカラムにアタッチできる別のオブジェクトになります。 テーブルのカラムにアタッチできる別のオブジェクトになります。IDとは異なり、カラムの値に対応する次の番号はメモリから取得されます。 カラムの値に対する次の番号は、ディスクからではなく、メモリから取得されます。 これにより、Sequence は Identity よりも大幅に高速になります。これについては このことは、今後の例で見ていきます。
そして ここで :
<ブロッククオートシーケンス シーケンスは、SQL Server コミュニティから何年も前から要求されていたもので、今回のリリースに含まれています。 のコミュニティから何年も前から要求されていたもので、今回のリリースに含まれています。シーケンスは、数値のシーケンスを生成するユーザー定義のオブジェクトです。 オブジェクトで、数値のシーケンスを生成します。以下は を使用した例です。
と はここで も同様に
<ブロッククオートSQL Serverシーケンスオブジェクトは、SQLテーブルのIDカラムと同じように SQLテーブルのIDカラムと同じように しかし、シーケンス番号の利点は しかし、シーケンス番号の利点は、シーケンス番号オブジェクトは、単一のSQLテーブルで制限されていないことです。 テーブルに限定されないことです。
また、msdnでは、使い方や必要な理由についての詳細が書かれています ( はこちら ):
シーケンスは、ユーザが定義したスキーマバインドオブジェクトで 数値のシーケンスを生成するオブジェクトです。 数値のシーケンスを生成します。数値のシーケンスは を昇順または降順で生成し、要求に応じて循環(反復)させることができる。 要求に応じて循環(繰り返し)する。シーケンスは、IDカラムとは異なり、テーブルとは関連しない。 テーブルとは関係ありません。アプリケーションはシーケンスオブジェクトを参照し を参照し、次の値を受け取ります。シーケンスとテーブルの関係は テーブルとの関係は、アプリケーションによって制御されます。ユーザーアプリケーションは シーケンスオブジェクトを参照し、複数の行やテーブルにまたがる値のキーを調整することができます。 複数の行やテーブルにまたがる値のキーを調整することができます。
シーケンスは、テーブルとは独立して、CREATE SEQUENCEステートメントを使用することで、テーブルとは別に作成されます。オプションにより、インクリメントを制御することができます。 最大値、最小値、開始点、自動再起動機能、パフォーマンスを向上させるための 機能、およびパフォーマンスを向上させるためのキャッシングを制御できます。オプションの詳細については CREATE SEQUENCEを参照してください。
行が挿入されたときに生成されるIDカラム値とは異なり、アプリケーションは次のシーケンス番号を 行を挿入する前に、アプリケーションは次のシーケンス番号を取得することができます。 NEXT VALUE FOR関数を呼び出すことで、行を挿入する前に次のシーケンス番号を取得することができます。シーケンス番号は、NEXT VALUE FORが呼び出されたときに割り当てられます。 がテーブルに挿入されない場合でも、NEXT VALUE FORを呼び出すとシーケンス番号が割り当てられます。 がテーブルに挿入されない場合でも、NEXT VALUE FORを呼び出すとシーケンス番号が割り当てられます。NEXT VALUE FOR関数は、列のデフォルト値として使用することができます。 は、テーブル定義における列のデフォルト値として使用することができます。使用方法 sp_sequence_get_range を使用して、複数のシーケンス番号の範囲を一度に取得します。 一度に複数のシーケンス番号の範囲を取得するには sp_sequence_get_range を使用してください。
シーケンスは任意の整数データ型として定義することができます。データ型が指定されない場合 が指定されない場合、シーケンスのデフォルトはbigintです。
関連
-
[解決済み] 外部キーはNULLや重複にできますか?
-
[解決済み] LINQでInclude()は何をするのですか?
-
[解決済み] 1つのPostgreSQLクエリで複数のWITHステートメントを使用するには?
-
[解決済み] SQL Server - 挿入された行のIDを取得するための最良の方法は?
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] sql serverでdoubleを表すのは何ですか?
-
[解決済み] SET NOCOUNT ON 使用法
-
[解決済み】マルチインデックスとマルチカラムインデックスの比較
-
[解決済み】ERROR:Postgresを使用したcities_id_seqシーケンスに対するパーミッションが拒否されました。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[エラー処理] [MySQL] [Err] 1241 - オペランドは 1 つのカラムを含む必要があります。
-
SQLラーニングノート--オペランドには1つのカラムが必要です。
-
[解決済み] Oracleで上位100行を選択する方法は?
-
[解決済み] MySQLの「スキーマの作成」と「データベースの作成」 - 違いはあるのか?
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] SQL SELECT WHERE フィールドに単語が含まれる場合
-
[解決済み] mysqldumpで特定のテーブルをスキップする
-
[解決済み] 既存のカラムにIDを追加する
-
[解決済み] SQLのインデックスとは何ですか?
-
[解決済み] SQL ServerでGROUP BYを使って文字列を連結する方法とは?