Rumah > pangkalan data > tutorial mysql > Bagaimanakah Keupayaan Pengindeksan untuk Pembolehubah Jadual Berubah dalam Pelayan SQL Merentasi Versi Berbeza?

Bagaimanakah Keupayaan Pengindeksan untuk Pembolehubah Jadual Berubah dalam Pelayan SQL Merentasi Versi Berbeza?

Barbara Streisand
Lepaskan: 2025-01-12 21:41:47
asal
479 orang telah melayarinya

How Have Indexing Capabilities for Table Variables Changed in SQL Server Across Different Versions?

Pengindeksan Pembolehubah Jadual Pelayan SQL: SQL Server 2000 vs Versi Moden

SQL Server 2014 dan ke atas

Dalam SQL Server 2014 dan kemudian, anda boleh menentukan indeks bukan unik secara terus sebaris apabila mengisytiharkan pembolehubah jadual:

<code class="language-sql">DECLARE @T TABLE (
C1 INT INDEX IX1 CLUSTERED,
C2 INT INDEX IX2 NONCLUSTERED,
INDEX IX3 NONCLUSTERED(C1,C2)
);</code>
Salin selepas log masuk

SQL Server 2016 seterusnya membenarkan penggunaan indeks yang ditapis pada pembolehubah jadual:

<code class="language-sql">DECLARE @T TABLE
(
c1 INT NULL INDEX ix UNIQUE WHERE c1 IS NOT NULL
)</code>
Salin selepas log masuk

SQL Server 2000-2012

Dalam SQL Server 2000-2012, pembolehubah jadual hanya boleh diindeks melalui kekangan:

<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>
Salin selepas log masuk

Secara tradisinya, jadual mempunyai indeks berkelompok atau timbunan tidak berkelompok:

  • Indeks berkelompok:

    • Boleh menjadi indeks unik atau indeks bukan unik (SQL Server menambah pengecam unik untuk pendua).
    • Boleh ditindih dengan menyatakan CLUSTERED/NONCLUSTERED menggunakan kekangan.
  • Indeks bukan berkelompok:

    • Boleh menjadi indeks unik atau indeks bukan unik (SQL Server menambah pencari baris untuk indeks bukan unik).
    • juga boleh ditindih seperti indeks berkelompok.

Melaksanakan indeks pada pembolehubah jadual

Dalam SQL Server 2000-2012, jenis indeks pembolehubah jadual berikut boleh dibuat secara tersirat melalui kekangan:

索引类型 能否创建
唯一聚集索引
非聚集堆上的唯一索引
聚集索引上的唯一非聚集索引

Sebagai contoh, indeks bukan berkelompok bukan unik pada lajur Nama dalam contoh asal boleh disimulasikan oleh indeks unik pada Nama dan ID:

<code class="language-sql">DECLARE @TEMPTABLE TABLE (
     [ID] [int] NOT NULL PRIMARY KEY
    ,[Name] [nvarchar] (255) COLLATE DATABASE_DEFAULT NULL 
)</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Keupayaan Pengindeksan untuk Pembolehubah Jadual Berubah dalam Pelayan SQL Merentasi Versi Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan