sql-server - 如何更新主键

标签 sql-server sql-server-2008 foreign-keys composite-primary-key

这是我的问题 - 我有 2 个表:

  1. WORKER,包含 |ID|OTHER_STAF| 列,其中 ID 为主键
  2. FIRM,包含 |FPK|ID|SOMETHING_ELSE| 列,其中 FPK 和 ID 的组合构成主键,并且 ID 是引用 WORKER.ID 的外键(不为空,并且必须具有与 WORKER 中的值相同)。

我想要创建存储过程UPDATE_ID_WORKER,我想在其中更改 WORKER 中特定 ID 的值,以及 FIRM 中 ID 特定值的所有实例。

最佳答案

您实际上不应该这样做,而是插入新记录并以这种方式更新它。
但是,如果您确实需要,可以执行以下操作:

  • 暂时禁用强制执行 FK 约束(例如 ALTER TABLE foo WITH NOCHECK CONSTRAINT ALL)
  • 然后更新您的 PK
  • 然后更新您的 FK 以匹配 PK 更改
  • 最后启用强制 FK 约束

关于sql-server - 如何更新主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2499246/

相关文章:

sql-server - 数据库表不会删除(或显示它的输入数据)

sql - 简单的选择会占用大量时间

mysql - mysql无法添加外键约束

android - DBFlow 在 Gradle 中因 NullPointerException 崩溃

sql - 加入具有多个匹配项的表,但只带回指定的匹配项

CakePHP 模型与多个外键的关系

sql-server - 检查 WHERE 子句中的条件

c# - OdbcParameter 错误 - varchar(MAX) 输出参数的大小为 0

SQL Server : how to select First, 二级和三级联系人

sql-server - 基于 SQl Server 2008 中的 2 列的唯一键?