相关疑难解决方法(0)

如何列出引用SQL Server中给定表的所有外键?

我需要删除SQL Server数据库中高度引用的表.如何获取我需要删除的所有外键约束的列表以便删除表?

(在管理工作室的GUI中,SQL答案比点击更好.)

sql t-sql sql-server

692
推荐指数
18
解决办法
58万
查看次数

59
推荐指数
3
解决办法
5万
查看次数

如何编写SQL Server中的索引,键,外键脚本

我想从SQL Server(2008)中的数据库中获取所有索引,键和外键的详细信息.我该怎么做呢?

我计划使用它来在几个有点类似的数据库中同步这些属性.

我可以使用SQL Server Management Studio,但由于Web主机设置的限制,我无法对数据库进行完整备份.

-

您不需要回答的次要问题:

为什么不能在Mysql中出现类似于数据库模式的东西,它只是以文本SQL脚本格式列出所有数据库结构?

sql-server indexing key foreign-keys

7
推荐指数
2
解决办法
2万
查看次数

查询以查找所有FK约束及其引用的表列

我有一个大的SQL 2012数据库(100个表),其中我需要找到参照操作设置为CASCADE(更新或删除)的所有约束.

这个有用的答案中,我看到我可以使用以下T-SQL列出约束(略微改编):

SELECT
    name,
    delete_referential_action_desc,
    update_referential_action_desc
FROM
    sys.foreign_keys
WHERE
    update_referential_action_desc = 'CASCADE' OR
    delete_referential_action_desc = 'CASCADE';
Run Code Online (Sandbox Code Playgroud)

这提供了一个有用的列表:

name        delete_referential_action_desc      update_referential_action_desc
----------------------------------------------------------------------
FK_name001  CASCADE                             CASCADE
FK_name002  CASCADE                             NO_ACTION
FK_name003  CASCADE                             NO_ACTION
Run Code Online (Sandbox Code Playgroud)

但是,是否可以扩展代码,以便为每个约束包含相应的表名和列名,例如?

name        delete_referential_action_desc      update_referential_action_desc  ParentTable ParentCol   ChildTable  ChildCol
----------------------------------------------------------------------------------------------------------------------------
FK_name001  CASCADE                             CASCADE                         Table1      Col1        Table2      Col2
Run Code Online (Sandbox Code Playgroud)

我尝试过不同的编辑从中提取值sys.objects但无法弄清楚它是如何工作的,或者这是否是正确的方法.

更新

请注意,我不想ALTER任何东西,或作出任何架构更改.我只是想查看一个列表,以便我可以手动执行进一步的操作.我没有信心或经验来编辑这个巨大的查询来拉出重点.

t-sql referential-integrity sql-server-2012

6
推荐指数
1
解决办法
3871
查看次数

如果主键也是另一个表的外键,如何更新它?

我有一个表 tableA,其中有一列 myID。myID 是表 A 中的主键,是表 B 中的外键。

当我尝试更新 tableA 中特定记录的 myID 时:

update tableA
set myID = 123456
where myID= 999999
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

UPDATE 语句与 FOREIGN KEY 约束“tableA_FK00”冲突。冲突发生在数据库“mydatabase”、表“tableA”、列“myID”中。

我已将 myID 的更新规则设置为“级联”并将外键约束强制执行为“否”,但我仍然无法更新。我应该如何进行?

sql-server-2008

5
推荐指数
1
解决办法
3742
查看次数

查找引用某个主键的数据库中的所有外键约束

我想在我的数据库中找到所有引用某个表的主键的外键.

例如,我A在表中有一列T是主键.现在我想找到A外键约束中引用哪些表列?

我考虑过的一个简单方法是检查数据库图表,但这只适用于数据库非常小的情况.对于拥有50个以上表的数据库来说,这不是一个很好的解决方案.

任何替代品?

sql sql-server foreign-keys primary-key foreign-key-relationship

4
推荐指数
2
解决办法
3万
查看次数