数据库中的外键

时间:2011-03-10 09:37:25

标签: sql-server linq-to-sql foreign-keys

我正在使用linq到sql .dbml,

我可以知道将外键约束添加到数据库的最佳方法是什么? ALTER TABLE Staffs Add CONSTRAINT fk_Staffs FOREIGN KEY(UserId) REFERENCES Users(Id);

我可以写这个没有问题。但是当我的数据库表增加时,我很难维护Add Constraint外部脚本。每当我对数据库列进行多次更新时,我都会竭尽全力更新这些alter table脚本。

这可能有一个简单的过程吗?在.dbml中,我可以拖放关联以添加外键,我想知道有没有办法将这些外键导出到脚本中,就像我上面写的一样?当我想进行部署时,这很好。

或者我必须编写alter脚本并在表发生更改时更新它吗? 请建议

2 个答案:

答案 0 :(得分:1)

每次实际更改FK关系的数据库更新时,您只需执行此操作一次 在进行数据库重构的情况下,这通常不是整个重构的重要内容。

但如果您不喜欢编写脚本,可以使用表设计器i SQL Management Studio。

  1. 右键单击表格 - >设计
  2. 右键单击appropritate数据库列(设计器中的一行) - >关系
  3. 在对话框中,添加新关系并在属性编辑器中选择相关的表和列。
  4. 完成。

答案 1 :(得分:1)

这是正确的方法。您也可以在设计师中使用另一个答案,但是如果您必须从开发到生产,那么您必须手动完成这一切,这非常繁琐,并且容易导致错误。

妥协可以是使用设计器进行更改,并在SQL管理工作室中使用鼠标右键单击并选择`Script object ...'。比你不必输入那么多。

您提到了表名的更改。嗯,这不应该经常发生!

如果它发生了很多,我建议你与你的团队一起创建一些关于如何命名列的命名约定(并坚持使用它们),并且工作量将受到限制。