2012-09-04 18 views
6

SQL Serverのテーブルにプライマリキーを作成することはできますか?テーブルにインデックスを持たない主キー?

+6

主キーはインデックスです。あなたは質問が感覚的ではない... – sp00m

+1

私はabt that.My questionを知っています。Pkを作成したいのですが、その上にインデックスはありません – AnandPhadke

+2

PKは、常にユニークなインデックスによって実装されている論理的な制約です現在のバージョンのSQL Server –

答えて

10

いいえの実装の詳細として、SQL Serverはインデックスを使用して主キーを保持します。それを防ぐことはできません。主キー: - ユニークなインデックス - それは使用しています

  • には重複するキー値が
  • は、個々の行を識別することができます/

SQL Serverはすでにこれらの機能を提供する仕組みを持っているが、アクセスが存在しないことを保証します制約を強制するもの。

+0

私はデフォルトでそれを追加したいSQL Serverはクラスタ化インデックスを作成します。この動作をオーバーライドすると、サーバーはクラスタ化されていないインデックスを作成します。 – gstackoverflow

0

実際にインデックスを作成する機能は、書籍を横断するのと同じ方法で機能します。ページ番号とそのトピックとの関係がない限り、特定のページまたはトピックに移動することはできません。行のこの「ページング」(順序付け)は、SQL ServerのClustered Indexによって物理的に行われます。テーブルにPKがない場合は、一意のキーの修飾列にクラスタ化インデックスを追加できます。 1つの表に複数のクラスタード・インデックスがあり、他のすべての非クラスター化インデックスは検索/トラバーサルのクラスタード・インデックスに依存するため、クラスタード・インデックスを持たない列PKを作成することはできません。

+2

PK!=クラスタード・インデックス。複数の非クラスター化インデックスを持ち、クラスター化インデックスを持たないテーブル(ヒープ)を持つことができます。物理的な順序付けは事実上無関係であり、クラスタ化インデックスによって完全には決定されません。 –

-1

語の後にキーワードNONCLUSTEREDを追加することで、クラスタ化インデックスではない主キーを持つテーブルを作成できます。

+0

このような質問に対する回答を投稿するのではなく、よく理解するために例を挙げてください。 – tarzanbappa

関連する問題