Comment puis-je trouver toutes les dépendances de clé étrangère sur une colonne particulière?
Quelles sont les différentes alternatives (graphiquement dans SSMS, requêtes / vues dans SQL Server, outils de base de données tiers, code dans .NET)?
Comment puis-je trouver toutes les dépendances de clé étrangère sur une colonne particulière?
Quelles sont les différentes alternatives (graphiquement dans SSMS, requêtes / vues dans SQL Server, outils de base de données tiers, code dans .NET)?
La requête suivante vous aidera à démarrer. Il répertorie toutes les relations de clé étrangère dans la base de données actuelle.
SELECT
K_Table = FK.TABLE_NAME,
FK_Column = CU.COLUMN_NAME,
PK_Table = PK.TABLE_NAME,
PK_Column = PT.COLUMN_NAME,
Constraint_Name = C.CONSTRAINT_NAME
FROM
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK
ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK
ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU
ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
INNER JOIN (
SELECT
i1.TABLE_NAME,
i2.COLUMN_NAME
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2
ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME
WHERE
i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
) PT
ON PT.TABLE_NAME = PK.TABLE_NAME
Vous pouvez également afficher les relations sous forme graphique dans SQL Server Management studio au sein de Database Diagrams.
Si vous prévoyez de supprimer ou de renommer une table ou d'une colonne de trouver uniquement des clés étrangères dépendances pourrait ne pas être suffisante.
Font référence à des tables n'est pas connecté avec la clé étrangère - Vous aurez aussi besoin de recherche pour le référencement de tableaux qui pourraient ne pas être connecté avec la clé étrangère (j'ai vu beaucoup de bases de données avec une mauvaise conception qui n'ont pas les clés étrangères défini, mais qui n'ont). La Solution pourrait être à la recherche pour le nom de la colonne dans tous les tableaux et regarder pour les mêmes colonnes.
D'autres objets de base de données – c'est sans doute un peu hors sujet, mais si vous avez été la recherche de toutes les références qu'il est également important de vérifier les objets dépendants.
GUI Tools – Essayez de SSMS "de Trouver des objets ou des outils tels que ApexSQL de Recherche (outil gratuit, qui s'intègre dans SSMS) pour identifier tous les objets qui en dépendent, y compris les tableaux connecté avec une clé étrangère.
Ce que j'aime vraiment utiliser s'appelle SQL Dependency Tracker de Red Gate Software . Vous pouvez placer tout objet de base de données tel que des tables, des procédures stockées, etc.
Donne une très bonne représentation graphique des dépendances dans votre schéma.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.