Maison > base de données > tutoriel mysql > Puis-je créer des index sur les variables de table SQL Server ?

Puis-je créer des index sur les variables de table SQL Server ?

Mary-Kate Olsen
Libérer: 2025-01-12 21:32:46
original
968 Les gens l'ont consulté

Can I Create Indexes on SQL Server Table Variables?

Index sur la variable de table SQL Server

Dans SQL Server 2014 et versions ultérieures, il est possible de créer des index directement sur des variables de table en utilisant la syntaxe en ligne. Par exemple :

<code class="language-sql">DECLARE @T TABLE (
  C1 INT INDEX IX1 CLUSTERED,
  C2 INT INDEX IX2 NONCLUSTERED,
  INDEX IX3 NONCLUSTERED(C1, C2),
);</code>
Copier après la connexion

En revanche, dans SQL Server 2000 à 2012, les index ne peuvent pas être explicitement créés sur des variables de table. Cependant, des index implicites peuvent être créés via des déclarations de contraintes.

Créez un index pour la colonne Nom dans SQL Server 2000

Considérez la déclaration de variable de table suivante :

<code class="language-sql">DECLARE @TEMPTABLE TABLE (
  [ID] [INT] NOT NULL PRIMARY KEY,
  [Name] [NVARCHAR] (255) COLLATE DATABASE_DEFAULT NULL,
);</code>
Copier après la connexion

Puis-je créer un index sur la colonne Nom ?

Oui, vous pouvez utiliser la contrainte UNIQUE NONCLUSTERED pour créer un index sur la colonne Nom. La syntaxe est la suivante :

<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>
Copier après la connexion

Implémentation d'index sur les variables de table

Les tables traditionnelles dans SQL Server peuvent être des index clusterisés ou des tas. Dans les variables de table, les index sont créés implicitement uniquement via des contraintes. Cela signifie que les types d'index pouvant être créés sur des variables de table sont limités.

Le tableau suivant résume les différents types d'index et indique s'ils peuvent être créés sur des variables de table dans SQL Server 2000 à 2012.

索引类型 表变量支持
唯一聚集索引
非唯一聚集索引
堆上的唯一非聚集索引
堆上的非唯一非聚集索引
聚集索引上的唯一非聚集索引
聚集索引上的非唯一非聚集索引

Dans l'exemple fourni, un index non clusterisé non unique sur la colonne Nom est simulé en créant un index unique sur Nom et ID. En effet, SQL Server ajoute implicitement des clés d'index clusterisées aux clés d'index non uniques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal