0

SMO を使用して一連の挿入ステートメントを生成し、環境間でデータをコピーしたいと考えています。私はこれを機能させていますが、何らかの理由で、日時フィールドは日時にキャストされる 16 進値としてフォーマットされます。これにより、スクリプトが読みにくくなり、更新できなくなります。これを変更して日付の文字列表現を使用する方法はありますか?

生成に使用されるコード:

scripter = New Scripter(<server>)
scripter.Options.ScriptData = True
...
For Each s As String In scripter.EnumScript(list)
    writer.WriteLine(FormatScript(s))
Next

これを変更したいのですが...

INSERT [dbo].[dmMessages] ([MessageId], [MessageCd], [MessageDesc], [Status], [EnteredBy], [EnteredDt])
VALUES (1, N'GenericMessages.FieldRequired', N'The {0} field is required.', 1, N'System', CAST(0x00009B4900000000 AS DateTime))

INSERT [dbo].[dmMessages] ([MessageId], [MessageCd], [MessageDesc], [Status], [EnteredBy], [EnteredDt])
VALUES (1, N'GenericMessages.FieldRequired', N'The {0} field is required.', 1, N'System', '2009-1-1 13:00:00:000')
4

1 に答える 1

0

SMOにデータのスクリプトを作成させるのではなく、BCPを使用してデータをエクスポートし、一括挿入してデータをインポートすることで、探している結果を得ることができます。詳細については、こちらをお読みください。

于 2009-12-22T21:32:22.040 に答える