36

SQL Server 2008 でデータベースを作成していますが、

CREATE TABLE Users
(
    U_Id INT NOT NULL
    FirstName VARCHAR(50) NOT NULL,
    LastName VARCHAR(50) NOT NULL,
    Email VARCHAR(200)
    Password VARCHAR(50)
)

U_Id を主キーにしたい。の違いは何ですか?

 CONSTRAINT pk_UserID PRIMARY KEY (U_Id)

これ

 CONSTRAINT pk_UserID PRIMARY KEY CLUSTERED (U_Id)

この

CONSTRAINT pk_UserID PRIMARY KEY NONCLUSTERED (U_Id)

それぞれいつ使う?

いくつかの記事を読みましたが、まだ不明です。誰かが私に簡単な説明をしてもらえますか?

4

1 に答える 1

50

次のステートメント:

CONSTRAINT pk_UserID PRIMARY KEY (U_Id)

これと同じです:

CONSTRAINT pk_UserID PRIMARY KEY CLUSTERED (U_Id)

テーブルデータの物理性は、インデックスの1つでのみ並べ替えることができます。デフォルトでは、そのインデックスが主キーに使用されます(主キーの一意性制約は常にインデックスでサポートされます)。

他のインデックスに従って保存されるテーブルデータの順序を残したい場合は、次のコマンドで主キーを作成する必要があります。

CONSTRAINT pk_UserID PRIMARY KEY NONCLUSTERED (U_Id)

次に、次のコマンドを使用してクラスター化インデックスを作成します。

CREATE CLUSTERED INDEX ix_Email ON Users (Email); 
于 2012-05-22T17:50:05.873 に答える