Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 确定哪些对象引用SQL Server中的表_Sql Server 2008_Table Rename - Fatal编程技术网

Sql server 2008 确定哪些对象引用SQL Server中的表

Sql server 2008 确定哪些对象引用SQL Server中的表,sql-server-2008,table-rename,Sql Server 2008,Table Rename,我使用SQL Server 2008,我有一个数据库,它有1500多列和大约500个存储过程,还有 我想重命名一个具有多个关系且在许多存储过程和视图中被引用的表,以及 如何获取数据库中与此表相关的所有项 谢谢。使用: 其中'mySchemaName.myTableName'是您的schema.table,例如'dbo.MyTable'如果您需要按名称查找数据库对象(例如表、列、触发器),请查看名为的免费红门工具,它会在整个数据库中搜索任何类型的字符串 对于任何DBA或数据库开发人员来说,它都

我使用SQL Server 2008,我有一个数据库,它有1500多列和大约500个存储过程,还有

我想重命名一个具有多个关系且在许多存储过程和视图中被引用的表,以及

如何获取数据库中与此表相关的所有项

谢谢。

使用:


其中
'mySchemaName.myTableName'
是您的schema.table,例如
'dbo.MyTable'

如果您需要按名称查找数据库对象(例如表、列、触发器),请查看名为的免费红门工具,它会在整个数据库中搜索任何类型的字符串


对于任何DBA或数据库开发人员来说,它都是一个非常好的必备工具-我是否已经提到过它绝对是免费的,可以用于任何类型的用途???

这是我发现的另一个解决方案。您不必安装任何工具。只需在查询分析器上运行

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

谢谢。但是什么是“mySchemaName”和“OBJECT”?@Tavousi-正如您所见,您想使用
'OBJECT'
作为第二个参数。SQL Server中的默认架构是
dbo
,因此这可能是您的架构。如果这意外为您返回0行,请注意,在SQL Server 2008-2012中,sys.dm_SQL_referencement_entites需要对被引用对象的控制权限才能工作。尝试以具有提升权限的数据库用户身份运行查询。这似乎不适用于查找与执行SP的数据库不同的数据库中引用的对象。我在一个古老的SQL 2008(10.0)框中尝试了这一操作,搜索一个表,它返回了两个视图,但没有返回表上定义的四个触发器。它应该归还它们吗?在应该归还的地方给予信用
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