我与SQL Server 2008工作,我有一个拥有超过1500列和500存储过程和...的数据库。
我想重命名有一些关系,在很多存储过程和视图,并引用的表...。
如何我可以得到具有与此表的关系数据库中的所有项目?
谢谢。
我与SQL Server 2008工作,我有一个拥有超过1500列和500存储过程和...的数据库。
我想重命名有一些关系,在很多存储过程和视图,并引用的表...。
如何我可以得到具有与此表的关系数据库中的所有项目?
谢谢。
如果你需要按名称查找数据库对象(如表,列,触发器) -看看称为自由红门工具SQL搜索该做到这一点-它搜索整个数据库的任何类型的字符串(S)的。
这对任何DBA或数据库开发人员有很大必备的工具-为什么我已经提到它的绝对自由使用任何类型的使用?
使用sys.dm_sql_referencing_entities
:
SELECT
referencing_schema_name, referencing_entity_name, referencing_id,
referencing_class_desc, is_caller_dependent
FROM
sys.dm_sql_referencing_entities ('mySchemaName.myTableName', 'OBJECT');
GO
其中, 'mySchemaName.myTableName'
是你schema.table,例如'dbo.MyTable'
这是另一种解决办法,我发现。 您不必安装任何工具。 刚上查询分析器运行。
Use [Database]
Go
SELECT
referencing_schema_name = SCHEMA_NAME(o.SCHEMA_ID),
referencing_object_name = o.name,
referencing_object_type_desc = o.type_desc,
referenced_schema_name,
referenced_object_name = referenced_entity_name,
referenced_object_type_desc = o1.type_desc,
referenced_server_name, referenced_database_name
--,sed.* -- Uncomment for all the columns
FROM
sys.sql_expression_dependencies sed
INNER JOIN
sys.objects o ON sed.referencing_id = o.[object_id]
LEFT OUTER JOIN
sys.objects o1 ON sed.referenced_id = o1.[object_id]
WHERE
referenced_entity_name = 'SP_Pay_GetData'
order by referencing_object_name