0

我想使用 SMO 生成一组插入语句来在环境之间复制数据。我有这个工作,但由于某种原因,日期时间字段被格式化为转换为日期时间的十六进制值。这使得脚本难以阅读并且无法更新。有没有办法让我改变它以使用日期的字符串表示?

用于生成的代码:

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

获得所需结果的一种迂回方法是使用 BCP 导出数据并使用批量插入导入数据,而不是让 SMO 编写数据脚本。阅读此处了解更多详情。

于 2009-12-22T21:32:22.040 回答