1

最初にインデックスを削除してから PK を削除しようとしています (最終的には、このテーブルで切り捨てを行う必要があるため)。

このテーブルと制約のスクリーン ショットを次に示します。

ここに画像の説明を入力

2 つの制約を次に示します (コードは、SQL 2008 で右クリックしてクリップボードに作成した後にクリップボードから取得されます)。

(主キー)

ALTER TABLE [dbo].[Entry] ADD  CONSTRAINT [PK_Entry_Id] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO

(おそらくこれは、右クリックしてクリップボードに作成した後のインデックス作成コードです..しかし、まったく同じコードです!理由はわかりません):

ALTER TABLE [dbo].[Entry] ADD  CONSTRAINT [PK_Entry_Id] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO
4

3 に答える 3

2

主キーを削除すると、主キーを作成したときにインデックスが自動的に作成されるだけでなく、インデックスも削除されます。

テーブルを切り詰める必要がある場合にのみ、外部キー制約を削除する必要があります。これは、それに依存するテーブルがないことを確認するためです。

于 2013-01-17T22:53:30.933 に答える
0

主キーに関連付けられているインデックスを削除する必要はなく、削除することもできません。主キーを削除するだけで、インデックスが削除されます。

ただし、データを切り捨てる場合は、主キーを削除する必要はありません。

テーブルを切り捨てられない場合は、このテーブルを参照する外部キーを削除する必要があります。データに何も表示されないため、このテーブルが他のテーブルを参照している外部キーを削除したと思います。

于 2013-01-17T22:49:32.657 に答える
0

定数とインデックスは同じではありません。
ただし、一部の構文では、インデックスは制約と呼ばれます。
5つの制約と1つのインデックスがあります。両方のスポットPK_Entry_ID
で同じ名前になっていることに気づかなかった。 PKはインデックスです。

また、インデックスは切り捨てを防ぎません。

FKは切り捨てを防ぎます。

インデックスを削除しようとしているのなら、なぜ作成するスクリプトを作成しているのですか。
ドロップしてドロップするスクリプトを作成します。

于 2013-01-17T23:01:05.967 に答える