Maison >base de données >tutoriel mysql >Comment les index filtrés peuvent-ils appliquer des contraintes conditionnelles uniques dans SQL Server ?

Comment les index filtrés peuvent-ils appliquer des contraintes conditionnelles uniques dans SQL Server ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-10 10:31:22842parcourir

How Can Filtered Indexes Enforce Conditional Unique Constraints in SQL Server?

Contraintes conditionnelles uniques avec index filtrés dans SQL Server

La conception de bases de données nécessite parfois des contraintes conditionnelles uniques : l'unicité appliquée à un ensemble de colonnes uniquement lorsqu'une autre colonne remplit une condition spécifique. Ceci est courant lors de la gestion d’enregistrements actifs et inactifs, préservant ainsi l’intégrité des données. Les index filtrés de SQL Server offrent une solution efficace. Un index filtré crée un index unique sur le sous-ensemble de lignes d'une table, défini par un prédicat de filtre.

Mise en œuvre de l'unicité basée sur le statut de l'enregistrement

Imaginez un tableau avec des colonnes ID, Name et RecordStatus. Nous avons besoin d'une contrainte unique sur (ID, RecordStatus) uniquement lorsque RecordStatus = 1 (enregistrements actifs). Un index filtré permet d'obtenir cela :

<code class="language-sql">CREATE UNIQUE INDEX MyIndex
ON MyTable (ID)
WHERE RecordStatus = 1;</code>

Cela garantit l'unicité de ID uniquement lorsque RecordStatus vaut 1, ce qui permet plusieurs enregistrements inactifs (RecordStatus = 2) avec le même ID.

Au-delà du statut d'enregistrement : unicité conditionnelle polyvalente

Les index filtrés ne se limitent pas au statut de l'enregistrement. Ils permettent un contrôle granulaire de l'unicité des données en fonction de divers critères, améliorant ainsi l'intégrité et les performances des données.

Avantages des index filtrés

Par rapport aux alternatives telles que les déclencheurs, les index filtrés offrent :

  • Amélioration des performances : L'indexation uniquement des lignes pertinentes accélère les recherches et les insertions.
  • Stockage réduit : Moins de stockage est utilisé car l'index ne couvre que les lignes nécessaires.
  • Maintenance simplifiée : Les mises à jour automatiques avec les modifications de données éliminent la maintenance supplémentaire.

Résumé

Les index filtrés de SQL Server offrent un moyen robuste et efficace d'appliquer des contraintes conditionnelles uniques. Ils offrent un équilibre entre l'intégrité des données, les performances et l'optimisation du stockage.

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!

Déclaration:
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