我正在尝试将默认值设置为另一列的当前值。 FluentMigrator有什么方法可以轻松地做到这一点吗?
public override void Up()
{
Alter.Table(NomTable.VenteMetadata).AddColumn("Column").AsString()
.NotNullable().WithDefaultValue("??");
}
public override void Down()
{
Delete.Column("Column").FromTable(NomTable.VenteMetadata);
}
答案 0 :(得分:0)
不,您不能使用WithDefaultValue
来做到这一点。如果您使用的是Microsoft SQL Server,则可以创建一个插入触发器来实现所需的目标:
Execute.Sql(@"
CREATE TRIGGER VenteMetadata_AfterInsert_TRG
ON VenteMetadata
AFTER INSERT
AS
UPDATE VenteMetadata t
SET t.Column = t.OtherColumn
FROM Inserted i
WHERE t.Id = i.Id
");