Dal*_*ale 7 sql-server ssms sql-server-2005 constraints merge-replication
我有一个在Sql server 2005下运行的数据库,带有合并复制.我想将一些FK列更改为"not null",因为它们应始终具有值.SQL服务器不会让我这样做,这就是它所说的:
- 无法修改表格.删除合并复制使用的rowguid列上的默认约束无效.在执行内部复制过程期间,架构更改失败.有关更正操作,请参阅此错误消息附带的其他错误消息.交易在触发器中结束.批次已中止.
我根本没有尝试更改rowguid列上的约束,只是在另一个充当FK的列上.我想设置的其他列不为null,因为没有该信息(即客户,客户名称)记录没有任何意义.
问题:有没有办法在不关闭复制然后重新打开它的情况下将列更新为"非空"?这甚至是最好的方法 - 我应该使用约束吗?
显然,SSMS通过删除表并重新创建表来对表进行更改.所以只需要使用T-SQL语句进行更改.
ALTER TABLE dbo.MyTable ALTER COLUMN MyColumn nvarchar(50) NOT NULL
Run Code Online (Sandbox Code Playgroud)