我正在使用linq到sql .dbml,
我可以知道将外键约束添加到数据库的最佳方法是什么?
ALTER TABLE Staffs
Add CONSTRAINT fk_Staffs FOREIGN KEY(UserId) REFERENCES Users(Id);
我可以写这个没有问题。但是当我的数据库表增加时,我很难维护Add Constraint外部脚本。每当我对数据库列进行多次更新时,我都会竭尽全力更新这些alter table脚本。
这可能有一个简单的过程吗?在.dbml中,我可以拖放关联以添加外键,我想知道有没有办法将这些外键导出到脚本中,就像我上面写的一样?当我想进行部署时,这很好。
或者我必须编写alter脚本并在表发生更改时更新它吗? 请建议
答案 0 :(得分:1)
每次实际更改FK关系的数据库更新时,您只需执行此操作一次 在进行数据库重构的情况下,这通常不是整个重构的重要内容。
但如果您不喜欢编写脚本,可以使用表设计器i SQL Management Studio。
答案 1 :(得分:1)
这是正确的方法。您也可以在设计师中使用另一个答案,但是如果您必须从开发到生产,那么您必须手动完成这一切,这非常繁琐,并且容易导致错误。
妥协可以是使用设计器进行更改,并在SQL管理工作室中使用鼠标右键单击并选择`Script object ...'。比你不必输入那么多。
您提到了表名的更改。嗯,这不应该经常发生!
如果它发生了很多,我建议你与你的团队一起创建一些关于如何命名列的命名约定(并坚持使用它们),并且工作量将受到限制。