Bar.Generateは何をしているのか分かりませんが、GUIDまたは一意のIDを作成すると思います。
そうなら、あなたは使用することができます:
Execute.Sql("update dbo.Foo set Bar = NEWID()");
それともシーケンシャルGUIDをしたいならば、あなたはNEWSEQUENTIALID()を使用することができます。
あなたはこのユニークなidentierのために新しい列を追加する場合は、その後、あなたがする必要があるだろう、すべてが新しい列を指定.AsGuidである()
EDIT:FluentMigratorが小さい流暢DSLで、カバーするものではありませんこのような複雑なケース。 1つのSQL UPDATEでこれを行う方法はありません(私が知る限り)ので、FluentMigratorで簡単に行うことはできません。 ADO.NETまたはORM(Dapper/NHibernate)を使用してテーブルの行数を取得し、各行をループし、カスタム一意識別子を持つBar列を更新する必要があります。したがって、100万行がある場合は、100万回のSQL更新を行う必要があります。 012.またはthisのようなNEWID()関数に基づくSql関数としてBar.Generate()メソッドを書き換えることができれば、それを1つのUPDATEステートメントとして実行し、FluentMigratorのExecute.Sqlメソッドで呼び出すことができます。
あなたが作業しているデータベースについて言及していません。しかし、Postgresのようなものにはnon-standard featuresがあります。
独自の「フレンドリーな」文字列を作成する独自の関数です。ごめんなさい。 – shenku
関数をSQL関数として書き直すことはできますか?それ以外の場合は、テーブルのすべての行をループする必要があります。 –
あなたのコード例では、キーワード 'table'はそこにあってはならないことに注意してください。コマンドは実行されません。実際のテーブル名に置き換えてください。 – shanabus