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>
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>
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>
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!