Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Finden Sie heraus, in welchen Ansichten (falls vorhanden) ein Feld verwendet wird (unter Verwendung von Abhängigkeiten?)

Zu Ihrer Frage

man könnte die Systemansicht VIEW_COLUMN_USAGE in Ihrer Datenbank verwenden. Ich habe diese Ansicht erstellt

USE [ScratchPad]
GO
CREATE VIEW [dbo].[View_1]
AS
SELECT     second
FROM         dbo.deleteme
GO

Verwenden Sie die folgende Abfrage:

SELECT TOP 1000 [VIEW_CATALOG]
      ,[VIEW_SCHEMA]
      ,[VIEW_NAME]
      ,[TABLE_CATALOG]
      ,[TABLE_SCHEMA]
      ,[TABLE_NAME]
      ,[COLUMN_NAME]
  FROM [ScratchPad].[INFORMATION_SCHEMA].[VIEW_COLUMN_USAGE]

Ich habe dieses Ergebnis erhalten, das den Spalten- und Tabellennamen enthält

## VIEW_CATALOG VIEW_SCHEMA VIEW_NAME   TABLE_CATALOG   TABLE_SCHEMA    TABLE_NAME  COLUMN_NAME
ScratchPad       dbo                      View_1     ScratchPad dbo          deleteme   second

Fügen Sie der Abfrage eine WHERE-Klausel hinzu, und Sie sollten Ihre Antwort erhalten.

Wenn Sie sich Einschränkungen ansehen möchten, verwenden Sie die Ansicht "[INFORMATION_SCHEMA].[CONSTRAINT_COLUMN_USAGE]"

Mein System ist MSSS 2K8, Ihr 2K5-System sollte die gleichen Systemansichten haben