使用SMO编写脚本时,我可以更改DATA脚本的格式吗?

时间:2009-12-22 21:14:06

标签: sql-server smo

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

用于生成的代码:

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')

1 个答案:

答案 0 :(得分:0)

获得您正在寻找的结果的一种方法是使用BCP导出数据和批量插入来导入数据,而不是让SMO编写数据脚本。请阅读here了解详情。