it-swarm.com.de

Wie finde ich heraus, welche Ansichten eine bestimmte Tabelle in SQL Server (2008) verwenden?

Ich muss einer Tabelle einige Spalten hinzufügen und ich muss diese Spalten auch allen Ansichten hinzufügen, die diese Tabelle verwenden.

Ist es möglich, eine Liste aller Ansichten in einer Datenbank abzurufen, die eine bestimmte Tabelle verwenden?

51
Peter

Dies sollte es tun:

SELECT * 
FROM   INFORMATION_SCHEMA.VIEWS 
WHERE  VIEW_DEFINITION like '%YourTableName%'
88
James Hill

Um Tabellenabhängigkeiten zu finden, können Sie die Katalogsicht sys.sql_expression_dependencies verwenden:

SELECT 
referencing_object_name = o.name, 
referencing_object_type_desc = o.type_desc, 
referenced_object_name = referenced_entity_name, 
referenced_object_type_desc =so1.type_desc 
FROM sys.sql_expression_dependencies sed 
INNER JOIN sys.views o ON sed.referencing_id = o.object_id 
LEFT OUTER JOIN sys.views so1 ON sed.referenced_id =so1.object_id 
WHERE referenced_entity_name = 'Person'  

Sie können auch ApexSQL Search ein kostenloses SSMS- und VS-Add-In ausprobieren, das auch die Funktion Abhängigkeiten anzeigen enthält. Mit der Funktion "Abhängigkeiten anzeigen" können Sie alle Beziehungen von SQL-Datenbankobjekten anzeigen, einschließlich der Beziehungen zwischen verschlüsselten Objekten und Systemobjekten, SQL Server 2012-spezifischen Objekten und Objekten, die in mit Transparenter Datenverschlüsselung (TDE) verschlüsselten Datenbanken gespeichert sind.

Haftungsausschluss: Ich arbeite für ApexSQL als Support Engineer

12
Milica Medic

Wenn Sie Datenbankobjekte (z. B. Tabellen, Spalten, Trigger) nach Namen suchen müssen, sehen Sie sich das [~ # ~] freie [~ # ~] Red-Gate-Tool mit dem Namen SQL Search , das dies tut - es durchsucht Ihre gesamte Datenbank nach jeder Art von Zeichenfolge (n).

enter image description here

enter image description here

Es ist ein großartiges Must-Have-Tool für jeden DBA- oder Datenbankentwickler - habe ich bereits erwähnt, dass es absolut [~ # ~] kostenlos [~ # ~] ist Verwenden Sie für jede Art von Nutzung?

5
marc_s

Ich finde, das funktioniert besser:

SELECT type, *
FROM sys.objects
WHERE OBJECT_DEFINITION(object_id) LIKE '%' + @ObjectName + '%'
AND type IN ('V')
ORDER BY name

Filterung VIEW_DEFINTION Innerhalb INFORMATION_SCHEMA.VIEWS gibt mir eine ganze Reihe von Fehlalarmen.

3
Steven de Salas
SELECT VIEW_NAME
FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE
WHERE TABLE_NAME = 'Your Table'
2
Dmitry

wählen Sie Ihre Tabelle aus -> Abhängigkeiten anzeigen -> Objekte, die davon abhängen

1
Diego