0

テーブルから INSERT ステートメントとしてデータをエクスポートするために、次の PowerShell コードを作成しました。

[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 にこのフォームを生成させることは可能ですか?

4

1 に答える 1

0

私はそうは思わない。SMO は、その構文がサポートされる前にさかのぼる SQL バージョンをサポートします。より小さな DML スクリプトを作成する以外に、その機能を SMO に追加しても得られるものはほとんどなく、コード ベースの保守性が犠牲になります。

于 2013-03-12T00:50:10.033 に答える