我需要在SQL Server数据库中删除一个高度引用的表。我如何获取要删除表需要删除的所有外键约束的列表?
(与在Management Studio的GUI中单击相比,SQL回答更可取。)
不知道为什么没有人建议,但是我sp_fkeys
用来查询给定表的外键:
EXEC sp_fkeys 'TableName'
您还可以指定架构:
EXEC sp_fkeys @pktable_name = 'TableName', @pktable_owner = 'dbo'
在未指定架构的情况下,文档规定以下内容:
如果未指定pktable_owner,则适用基础DBMS的默认表可见性规则。
在SQL
Server中,如果当前用户拥有具有指定名称的表,则返回该表的列。如果未指定pktable_owner且当前用户不拥有具有指定pktable_name的表,则该过程将查找数据库所有者拥有的具有指定pktable_name的表。如果存在,则返回该表的列。
问题内容: 我刚接触Oracle,想查找用户’john’创建的所有表。 我通过以下命令通过命令行连接到Oracle数据库: 如何列出给定用户(例如john)创建的所有表? 问题答案: 这将获得所有以“ JOHN”用户为所有者的表: 或者 ([TL; DR]通常需要使用大写。假设用户是使用该语句创建的,那么Oracle的默认行为是将所有对象名称(即表,列,用户等)都转换为大写。查询数据字典,在这种情
问题内容: 在MySQL中,如何获取指向特定表的所有外键约束的列表?特定的列?这与该Oracle问题相同,但适用于MySQL。 问题答案: 对于表: 对于列: 基本上,我们在where子句中将REFERENCED_TABLE_NAME更改为REFERENCED_COLUMN_NAME。
问题内容: 有没有一种方法可以获取实例中所有数据库中所有存储过程中引用的所有列和表?输出应为: 问题答案: 这将得到您想要的列表,但是,如果您在动态SQL中嵌入了此类列引用(并且可能找不到依赖于延迟名称解析的引用),则将无济于事。SQL Server不会解析存储过程的文本以提供DMV输出。 现在尝试使用子句来处理在同一服务器上具有不同归类的数据库的情况。 如果您的数据库处于80兼容模式,那么该语法
问题内容: 如何选择表中除一列以外的所有列? 我有将近259列,我不能在声明中提及258列。 还有其他方法吗? 问题答案: 您可以使用这种方法从除以下以外的所有列中获取数据:- 将所有数据插入临时表 然后从临时表中删除不需要的列 从临时表中获取数据(这将不包含已删除列的数据) 删除临时表 像这样的东西:
问题内容: 这似乎很简单,但是我一直无法找到这个问题的答案。 我想要什么? 一个具有行的主表,这些行在不再被引用(通过外键)时会自行删除。该解决方案可能特定于PostgreSql,也可能不特定于PostgreSql。 如何? 我解决此问题的方法之一(实际上,到目前为止是唯一的方法)涉及以下内容:对于引用该主表的每个表(在某行或某行上),检查主表中被引用的行以及其他多少行仍然参考引用的行。如果它降到
问题内容: 我有许多使用CTE,临时表,表变量和子查询的存储过程,我需要获取该存储过程中使用的所有列(包括数据库,架构和表/视图)的列表。我不需要获取临时表,表变量或CTE中的列。我只需要在服务器上的数据库的表或视图中定义的引用列。 我试过了,但是在第一个选择查询后或在CTE中选择后,它们不返回列。 问题答案: 当执行存储过程时,它将被解析并编译成查询计划,将对其进行缓存,您可以通过sys.dm_