【问题标题】:How find deleted table fields in stored procedure?如何在存储过程中找到已删除的表字段?
【发布时间】:2018-04-18 06:01:14
【问题描述】:

我想在我的数据库中找到不再使用的存储过程。所以我想也许有一种方法可以找到已删除列的存储过程或函数。

谢谢

【问题讨论】:

标签: sql-server function tsql stored-procedures


【解决方案1】:

你需要找到依赖:

sp_dependshttps://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-depends-transact-sql

dm_sql_referencing_entitieshttps://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-sql-referencing-entities-transact-sql

sql_expression_dependencieshttps://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-sql-expression-dependencies-transact-sql

EXEC sp_depends @objname = N'object name' ;  

SELECT OBJECT_SCHEMA_NAME ( referencing_id ) AS referencing_schema_name,  
    OBJECT_NAME(referencing_id) AS referencing_entity_name,   
    o.type_desc AS referencing_desciption,   
    COALESCE(COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id,   
    referencing_class_desc, referenced_class_desc,  
    referenced_server_name, referenced_database_name, referenced_schema_name,  
    referenced_entity_name,   
    COALESCE(COL_NAME(referenced_id, referenced_minor_id), '(n/a)') AS referenced_column_name,  
    is_caller_dependent, is_ambiguous  
FROM sys.sql_expression_dependencies AS sed  
INNER JOIN sys.objects AS o ON sed.referencing_id = o.object_id  
WHERE referenced_id = OBJECT_ID(N'dbo.object')  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 2017-08-25
    • 1970-01-01
    • 2014-02-12
    相关资源
    最近更新 更多