删除具有依赖对象的表列
尝试使用 ALTER TABLE DROP COLUMN 语法从表中删除列时,您可能会遇到错误:“消息 4922,级别 16,状态 9,第 2 行nALTER TABLE DROP COLUMN 失败,因为一个或多个对象访问这一列。”当您尝试删除的列被数据库中的其他对象(例如外键约束或默认值)引用时,会发生此错误。
解决方案:删除依赖约束
要成功删除列,您必须首先删除依赖于它的任何约束。在这种情况下,错误消息引用名为“DF__CompanyTr__Creat__0CDAE408”的默认约束。要删除此约束,请使用以下语法:
alter table CompanyTransactions drop constraint [df__CompanyTr__Creat__0cdae408];
删除依赖约束后,您可以执行原始查询来删除该列:
alter table CompanyTransactions drop column [Created];
代码优先迁移
如果您使用代码优先迁移来管理数据库架构,如果迁移已经变得不同步。在这种情况下,建议重新创建迁移并重新运行它们,以确保数据库处于一致的状态。
以上是如何在 SQL Server 中删除具有依赖对象的表列?的详细内容。更多信息请关注PHP中文网其他相关文章!