目前我们的DBA设计我们的数据库时没有定义外键,这是为了让开发团队为每个表单独地创建CRUD的单元测试。单元测试和外键问题
我们想让数据库团队在实际的数据库中开始使用外键,但是我们也想保持我们测试每个操作而不必创建父行的能力。
有没有一种方法来禁用外键约束没有更改表权限?
你是如何处理这种情况的?
目前我们的DBA设计我们的数据库时没有定义外键,这是为了让开发团队为每个表单独地创建CRUD的单元测试。单元测试和外键问题
我们想让数据库团队在实际的数据库中开始使用外键,但是我们也想保持我们测试每个操作而不必创建父行的能力。
有没有一种方法来禁用外键约束没有更改表权限?
你是如何处理这种情况的?
我们要求每个测试都设定它所期望的环境。这意味着,如果我们必须击中数据库,每项测试都会首先设置环境。我们确实使用了一些辅助方法来填充数据库的公共部分,但我们不会混淆模式本身,因为这是许多情况下正在测试的部分。
通过使用内存数据库进行单元测试,我们还可以使这一点更加容易,因此每个测试都更加独立。
测试你要发货的东西。
> ... we would also like to keep our ability to test each operation without
> having to create the parent rows.
> Is there a way to disable foreign key constraints without having alter
> table permissions?
没有,你无法禁用外键约束但 也许你可以在与id,它们在你的测试中使用的数据库“-1” 假单亲对象。子项目父母 然后可以引用“-1”虚拟项目
我们不禁用FK的,它阻止我们做一些愚蠢的事情,或者与损坏的数据有关。 – Nix 2011-04-18 16:33:56
你是否在寻找像http://stackoverflow.com/questions/159038/can-foreign-key-constraints-be-temporarily-disabled-using-t-sql? – a1ex07 2011-04-18 16:38:05