MS SQL Management Studioで「スクリプト生成」機能を使用すると、データもエクスポートされますが、すべての値は別の手順で挿入されます。MS SQLサーバ「単一のコマンドに値を挿入してスクリプトを生成」
INSERT [dbo].[table] ([table_id], [table_version], [table_timestamp], [table_user], [table_percent], [table_hid], [table_latestversionid], [table_isdeleted]) VALUES (3, -1, CAST(N'2015-06-04 13:03:38.000' AS DateTime), N'init', N' 30 %', NULL, 13, 0)
INSERT [dbo].[table] ([table_id], [table_version], [table_timestamp], [table_user], [table_percent], [table_hid], [table_latestversionid], [table_isdeleted]) VALUES (4, -1, CAST(N'2015-06-04 13:03:38.000' AS DateTime), N'init', N' 40 %', NULL, 14, 0)
INSERT [dbo].[table] ([table_id], [table_version], [table_timestamp], [table_user], [table_percent], [table_hid], [table_latestversionid], [table_isdeleted]) VALUES (5, -1, CAST(N'2015-06-04 13:03:38.000' AS DateTime), N'init', N' 50 %', NULL, 15, 0)
INSERT [dbo].[table] ([table_id], [table_version], [table_timestamp], [table_user], [table_percent], [table_hid], [table_latestversionid], [table_isdeleted]) VALUES (6, -1, CAST(N'2015-06-04 13:03:38.000' AS DateTime), N'init', N' 60 %', NULL, 16, 0)
INSERT [dbo].[table] ([table_id], [table_version], [table_timestamp], [table_user], [table_percent], [table_hid], [table_latestversionid], [table_isdeleted]) VALUES (7, -1, CAST(N'2015-06-04 13:03:38.000' AS DateTime), N'init', N' 70 %', NULL, 17, 0)
INSERT [dbo].[table] ([table_id], [table_version], [table_timestamp], [table_user], [table_percent], [table_hid], [table_latestversionid], [table_isdeleted]) VALUES (8, -1, CAST(N'2015-06-04 13:03:38.000' AS DateTime), N'init', N' 80 %', NULL, 18, 0)
このスクリプトの生成を作るためにどのような方法がありますと同じように、単一または複数の大きなステップでINSERTクエリを作成するために、SSMSを強制:
INSERT [dbo].[table] ([table_id], [table_version], [table_timestamp], [table_user], [table_percent], [table_hid], [table_latestversionid], [table_isdeleted])
VALUES
(3, -1, CAST(N'2015-06-04 13:03:38.000' AS DateTime), N'init', N' 30 %', NULL, 13, 0),
(4, -1, CAST(N'2015-06-04 13:03:38.000' AS DateTime), N'init', N' 40 %', NULL, 14, 0),
(5, -1, CAST(N'2015-06-04 13:03:38.000' AS DateTime), N'init', N' 50 %', NULL, 15, 0),
(6, -1, CAST(N'2015-06-04 13:03:38.000' AS DateTime), N'init', N' 60 %', NULL, 16, 0),
(7, -1, CAST(N'2015-06-04 13:03:38.000' AS DateTime), N'init', N' 70 %', NULL, 17, 0),
(8, -1, CAST(N'2015-06-04 13:03:38.000' AS DateTime), N'init', N' 80 %', NULL, 18, 0);
おかげ
'VALUES'は1000行の制限があります(新しいバージョンでは変更される可能性があります)ので、このような機能の使用は限られています。私はそれが構築されていないお金を賭けるつもりです。ボイラープレートを検索置換することで自明に効果を得ることができますが、データを挿入するパフォーマンスを得るためには、スクリプト全体のアプローチを廃棄してデータを一括してコピーする必要があります。 (また、 'BEGIN TRANSACTION ... COMMIT'に既存の文をラップすることは、別々のコミットであり、非効率的な文のサイズではないので、メリットがあります) –
2番目のスクリプトには1000行の制限があります。どうしてそんなことをしないのですか –
まあ、MySQLはいつからか分かりませんが、MSSQLはガベージスクリプトファイルを好みます。残念。 – Romczyk