में होना चाहिए जैसा कि लव ने कहा कि यह कोई पुराना सवाल है, लेकिन मैं दो और समाधान है कि सहायक हो सकता है मिल गया है।
मैं sys.dm_sql_referenced_entities सिस्टम ऑब्जेक्ट का उपयोग कर रहा हूं जो किसी निर्दिष्ट ऑब्जेक्ट में सभी संदर्भित ऑब्जेक्ट्स और कॉलम पाता है।
SELECT DISTINCT
referenced_schema_name AS SchemaName,
referenced_entity_name AS TableName,
referenced_minor_name AS ColumnName
FROM sys.dm_sql_referenced_entities ('yourrefencingobject', 'OBJECT');
GO
निम्नलिखित में से कौन परिणाम देता है:: आप निम्न क्वेरी का उपयोग कर सकते हैं
इस वस्तु का नकारात्मक पहलू है कि आप एक संदर्भित वस्तु का उल्लेख करना होगा है।
या की तरह कोई खोज करते हैं:
SELECT DISTINCT object_name(id)
FROM AdventureWorks2012.dbo.syscomments (nolock)
WHERE text like '%BusinessEntityID%'
निम्नलिखित में से कौन परिणाम देता है:
मैं यह भी पता कर लिया है निम्नलिखित सपा कि आप this article में इस्तेमाल कर सकते हैं, लेकिन हेवन ' टी ने इसे सही ढंग से परीक्षण किया:
> DECLARE @string varchar(1000), @ShowReferences char(1)
>
> SET @string = 'Person.Person.BusinessEntityID' --> searchstring
>
> SET @ShowReferences = 'N'
> /****************************************************************************/ /*
> */ /* TITLE: sp_FindReferences */ /* */ /* DATE: 18 February, 2004 */ /* */ /* AUTHOR: WILLIAM MCEVOY */ /* */ /****************************************************************************/ /*
> */ /* DESCRIPTION: SEARCH SYSCOMMENTS FOR INPUT STRING, OUTPUT NAME OF OBJECT */ /*
> */ /****************************************************************************/ set nocount on
>
> declare @errnum int ,
> @errors char(1) ,
> @rowcnt int ,
> @output varchar(255)
>
> select @errnum = 0 ,
> @errors = 'N' ,
> @rowcnt = 0 ,
> @output = ''
>
> /****************************************************************************/ /* INPUT DATA VALIDATION
> */ /****************************************************************************/
>
>
> /****************************************************************************/ /* M A I N P R O C E S S I N G
> */ /****************************************************************************/
>
> -- Create temp table to hold results DECLARE @Results table ( Name varchar(55), Type varchar(12), DateCreated datetime,
> ProcLine varchar(4000))
>
>
> IF (@ShowReferences = 'N') BEGIN insert into @Results select
> distinct
> 'Name' = convert(varchar(55),SO.name),
> 'Type' = SO.type,
> crdate,
> ''
> from sysobjects SO
> join syscomments SC on SC.id = SO.id where SC.text like '%' + @string + '%' union select distinct
> 'Name' = convert(varchar(55),SO.name),
> 'Type' = SO.type,
> crdate,
> ''
> from sysobjects SO where SO.name like '%' + @string + '%' union select distinct
> 'Name' = convert(varchar(55),SO.name),
> 'Type' = SO.type,
> crdate,
> ''
> from sysobjects SO
> join syscolumns SC on SC.id = SO.ID where SC.name like '%' + @string + '%' order by 2,1 END ELSE BEGIN insert into @Results
> select
> 'Name' = convert(varchar(55),SO.name),
> 'Type' = SO.type,
> crdate,
> 'Proc Line' = text
> from sysobjects SO
> join syscomments SC on SC.id = SO.id where SC.text like '%' + @string + '%' union select
> 'Name' = convert(varchar(55),SO.name),
> 'Type' = SO.type,
> crdate,
> 'Proc Line' = ''
> from sysobjects SO where SO.name like '%' + @string + '%' union select
> 'Name' = convert(varchar(55),SO.name),
> 'Type' = SO.type,
> crdate,
> 'Proc Line' = ''
> from sysobjects SO
> join syscolumns SC on SC.id = SO.ID where SC.name like '%' + @string + '%' order by 2,1 END
>
> IF (@ShowReferences = 'N') BEGIN select Name,
> 'Type' = Case (Type)
> when 'P' then 'Procedure'
> when 'TR' then 'Trigger'
> when 'X' then 'Xtended Proc'
> when 'U' then 'Table'
> when 'C' then 'Check Constraint'
> when 'D' then 'Default'
> when 'F' then 'Foreign Key'
> when 'K' then 'Primary Key'
> when 'V' then 'View'
> else Type
> end,
> DateCreated
> from @Results
> order by 2,1 END ELSE BEGIN select Name,
> 'Type' = Case (Type)
> when 'P' then 'Procedure'
> when 'TR' then 'Trigger'
> when 'X' then 'Xtended Proc'
> when 'U' then 'Table'
> when 'C' then 'Check Constraint'
> when 'D' then 'Default'
> when 'F' then 'Foreign Key'
> when 'K' then 'Primary Key'
> when 'V' then 'View'
> else Type
> end,
> DateCreated,
> ProcLine
> from @Results
> order by 2,1 END
आशा है कि यह
आप SYS.COLUMNS –
के साथ शुरू होता है और अगर आप आवेदन से एक proc में या सीधे गतिशील एसक्यूएल अनुमति देते हैं आप stilll हर समय किसी खास कॉलम प्रयोग किया जाता है लेने के नहीं हो सकता है। इसके अलावा, एसएसआईएस पैकेज सीधे कॉलम का भी संदर्भ दे सकते हैं। – HLGEM
यहां देखें: http://stackoverflow.com/questions/686247/how-to-find-the-list-of-stored-procedures-which-affect-a-particular-column –