Lorsque vous utilisez la fonction "Générer un script" dans MS SQL Management Studio, nous exportons également les données, mais toutes les valeurs sont insérées dans une étape distincte.Serveur MS SQL "Générer un script" avec des valeurs d'insertion dans une seule commande
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)
Est-il possible de faire cette génération de script et de forcer SSMS pour créer des requêtes d'insertion dans un seul ou plusieurs étapes plus importantes, comme:
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);
Merci
'VALUES' a une limite de 1000 lignes (peut-être sujet à changement dans les versions plus récentes), donc une telle fonctionnalité serait d'une utilité limitée pour commencer. Je vais parier que l'argent n'a pas été construit. Vous pouvez réaliser l'effet vous-même de manière triviale en remplaçant la plaquette de recherche, mais pour obtenir une performance quelconque en insérant les données, l'approche du script entier doit être abandonnée au profit des données de copie en masse. (En outre, envelopper les instructions existantes dans un BEGIN TRANSACTION ... COMMIT a des avantages, car ce sont les commits séparés et non la taille de l'instruction qui rend cette fonction inefficace.) –
Le deuxième script a une limitation en 1000 lignes, peut-être pourquoi ils ne font pas comme ça –
Eh bien, MySQL avait cela car je ne me souviens pas quand, mais MSSQL préfère les fichiers de script garbage. Pitié. – Romczyk