Indeks pada pembolehubah jadual SQL Server
Dalam SQL Server 2014 dan lebih baru, adalah mungkin untuk mencipta indeks secara langsung pada pembolehubah jadual menggunakan sintaks sebaris. Contohnya:
<code class="language-sql">DECLARE @T TABLE ( C1 INT INDEX IX1 CLUSTERED, C2 INT INDEX IX2 NONCLUSTERED, INDEX IX3 NONCLUSTERED(C1, C2), );</code>
Sebaliknya, dalam SQL Server 2000 hingga 2012, indeks tidak boleh dibuat secara eksplisit pada pembolehubah jadual. Walau bagaimanapun, indeks tersirat boleh dibuat melalui pengisytiharan kekangan.
Buat indeks untuk lajur Nama dalam SQL Server 2000
Pertimbangkan pengisytiharan pembolehubah jadual berikut:
<code class="language-sql">DECLARE @TEMPTABLE TABLE ( [ID] [INT] NOT NULL PRIMARY KEY, [Name] [NVARCHAR] (255) COLLATE DATABASE_DEFAULT NULL, );</code>
Bolehkah saya mencipta indeks pada lajur Nama?
Ya, anda boleh menggunakan kekangan UNIQUE NONCLUSTERED
untuk mencipta indeks pada lajur Nama. Sintaksnya adalah seperti berikut:
<code class="language-sql">DECLARE @TEMPTABLE TABLE ( [ID] [INT] NOT NULL PRIMARY KEY, [Name] [NVARCHAR] (255) COLLATE DATABASE_DEFAULT NULL, UNIQUE NONCLUSTERED ([Name], [ID]), );</code>
Pelaksanaan indeks pada pembolehubah jadual
Jadual tradisional dalam SQL Server boleh menjadi indeks berkelompok atau timbunan. Dalam pembolehubah jadual, indeks dicipta secara tersirat hanya melalui kekangan. Ini bermakna jenis indeks yang boleh dibuat pada pembolehubah jadual adalah terhad.
Jadual berikut meringkaskan jenis indeks yang berbeza dan sama ada ia boleh dibuat pada pembolehubah jadual dalam SQL Server 2000 hingga 2012.
索引类型 | 表变量支持 |
---|---|
唯一聚集索引 | 是 |
非唯一聚集索引 | 否 |
堆上的唯一非聚集索引 | 是 |
堆上的非唯一非聚集索引 | 否 |
聚集索引上的唯一非聚集索引 | 是 |
聚集索引上的非唯一非聚集索引 | 是 |
Dalam contoh yang diberikan, indeks bukan berkelompok bukan unik pada lajur Nama disimulasikan dengan mencipta indeks unik pada Nama dan ID. Ini kerana SQL Server secara tersirat menambah kunci indeks berkelompok kepada kunci indeks bukan unik.
Atas ialah kandungan terperinci Bolehkah saya Mencipta Indeks pada Pembolehubah Jadual Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!