Ich habe eine Tabelle in SQL Server 2008 R2 mit dem Primärschlüssel ID
, der dann von mehreren Tabellen in der Datenbank als Fremdschlüssel verwendet wird. Wie finde ich heraus, durch welche Tabellen es verwendet wird? Ich versuche, diesen Datensatz zu löschen, beschwere mich jedoch, dass ID
verwendet wird.
Oder gibt es eine einfache Möglichkeit, alle referenzierten Datensätze aus der gesamten Datenbank zu löschen, indem Sie der Datenbank ID
geben? Im Moment gehe ich für jede Tabelle (die ich kenne, hat diese ID als Fremdschlüssel) und Löschen von Datensätzen, die dieser bestimmten ID entsprechen, aber wenn es bessere / einfachere Möglichkeiten gibt, sie zu finden und alle auf einmal mit einfachem Code zu löschen, dann würde das funktionieren beste Idee.
MS SQL profitiert davon, dass es sich selbst beschreiben kann. Insbesondere gibt es eine Reihe von Ansichten, die mit INFORMATION_SCHEMA beginnen.
Um eine Vorstellung davon zu bekommen, wo Ihr Feld verwendet wird, versuchen Sie Folgendes: -
%Vor%Sehen Sie sich die Tabellen an sysobjects und sysforeignkeys , können Sie alle Fremdschlüssel erhalten die auf Ihre Tabelle verweisen.
Probieren Sie diese ungeprüfte Aussage:
%Vor%Tags und Links sql sql-server-2008 sql-server-2008-r2