我有一个使用合并复制在 Sql server 2005 下运行的数据库。我想将一些 FK 列更改为“非空”,因为它们应该始终具有值。SQL server 不会让我这样做,这就是它所说的:
- 无法修改表。删除合并复制使用的 rowguid 列上的默认约束是无效的。执行内部复制过程期间架构更改失败。有关纠正措施,请参阅此错误消息随附的其他错误消息。事务在触发器中结束。该批次已中止。
我根本不想改变对 rowguid 列的约束,只是在充当 FK 的另一列上。我想设置为不为空的其他列,因为没有该信息(即关于客户,客户名称)的记录没有任何意义。
问题:有没有办法在不关闭复制然后重新打开的情况下将列更新为“非空”?这甚至是最好的方法吗 - 我应该使用约束吗?