Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Trova in quali viste (se presenti) viene utilizzato un campo (usando le dipendenze?)

Per la tua domanda

si potrebbe utilizzare la vista di sistema VIEW_COLUMN_USAGE nel database. Ho creato questa vista

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

Utilizzando la query seguente:

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

Ho ricevuto questo risultato che include la colonna e il nome della tabella

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

Aggiungi una clausola WHERE alla query e dovresti ottenere la tua risposta.

Se desideri esaminare i vincoli, utilizza la vista "[INFORMATION_SCHEMA].[CONSTRAINT_COLUMN_USAGE]"

Il mio sistema è MSSS 2K8, il tuo sistema 2K5 dovrebbe avere le stesse viste di sistema