历史遗留项目,做数据迁移修改表结构的时候出错,不知道如何删除约束

想用代码实现删除约束,手动操作繁琐,而且容易出错,出现遗漏,造成未知问题,在排查,会比较麻烦。

Schema::table('Customer', function (Blueprint $table) {
  $table->string('field1', 100)->default("")->nullable(false)->change();
});
// 报错: SQLSTATE[42000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]对象'DF_Customer4_field1' 依赖于 列'field1'。 (SQL: ALTER TABLE Customer ALTER COLUMN field1 NVARCHAR(100) COLLATE Chinese_PRC_CI_AS NOT NULL)

有方法可以判断是否存在这个约束吗?

我知道可以判断是否存在索引,但是这个不是索引,这个在 sqlserver 的约束标签里面

我看了这个是因为这个字段设置默认值,产生了一个约束

ALTER TABLE [dbo].[Customer] ADD  CONSTRAINT [DF_Customer4_field1]  DEFAULT ('') FOR [field1]

我试了下,只要可以生成以下语句就行,只是不知道在哪里调用哪些可以生成这个 SQL 语句

alter table [dbo].[Customer]  drop constraint [DF_Customer4_field1]
世界上最遥远的距离不是生与死,而是你亲手制造的BUG就在你眼前,你却怎么都找不到ta。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 1
sane

尝试查找一下表的元数据信息 blog.csdn.net/dudadudadd/article/d...

3年前 评论
kis龍 (楼主) 3年前
sane (作者) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!