【发布时间】:2013-03-11 16:53:19
【问题描述】:
我编写了以下 PowerShell 代码以将表中的数据导出为 INSERT 语句:
[Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null
$srv = new-object Microsoft.SqlServer.Management.SMO.Server
$db = $srv.Databases["MYTESTDB"]
$scripter = new-object Microsoft.SqlServer.Management.SMO.Scripter $srv
$scripter.Options.FileName = "C:\tmp\data.sql"
$scripter.Options.ToFileOnly = $TRUE
$scripter.Options.ScriptSchema = $FALSE
$scripter.Options.ScriptData = $TRUE
$scripter.EnumScript($db.tables['MYTABLE'])
这将以以下形式导出:
INSERT [dbo].[MYTABLE] ([MYCOLUMN1], [MYCOLUMN2], [MYCOLUMN3]) VALUES ('something1', 'something1', 'something1')
INSERT [dbo].[MYTABLE] ([MYCOLUMN1], [MYCOLUMN2], [MYCOLUMN3]) VALUES ('something2', 'something2', 'something2')
INSERT [dbo].[MYTABLE] ([MYCOLUMN1], [MYCOLUMN2], [MYCOLUMN3]) VALUES ('something3', 'something3', 'something3')
但我正在寻找的是以下形式,我相信它被称为“行构造函数”:
INSERT [dbo].[MYTABLE] ([MYCOLUMN1], [MYCOLUMN2], [MYCOLUMN3]) VALUES
('something1', 'something1', 'something1'),
('something2', 'something2', 'something2'),
('something3', 'something3', 'something3')
是否可以让 SMO 生成这个表格?
【问题讨论】:
-
从 2008 年开始绝对支持此语法 msdn.microsoft.com/en-us/library/ms174335(v=sql.100).aspx
-
@Eli Ekstein:我知道是这样,但问题是如何让 SMO 使用这种语法生成脚本。谢谢!
-
对此感到抱歉...现在我明白了我没有很好地理解您的问题...
标签: sql-server smo