Connaissez vous l’instruction GO [count] ?

cette commande sql serveur non transact sql, mais reconnu par le manager et sqlcmd et osql offre des possibilités alors insoupconnées en SQL. Attention! Toad ne l’accepte pas!

lien msdn : http://msdn2.microsoft.com/en-us/library/ms188037.aspx

Exemple : le problème N°6 de sqlpro ( concours developpez.com )

Pour cet exercice, il s’agit d’alimenter les nombres de 0 à 9999 dans une table de nom T_ENTIER_ENT contenant un seul champ de type entier et de nom ENT_N. Au départ, cette table contient les nombres de 0 à 9.
J’ai intitulé ce problème, ‘énumération’…

La table T_ENTIER_NET est ainsi constituée :

CREATE TABLE T_ENTIER_ENT
(ENT_N INTEGER);

INSERT INTO T_ENTIER_ENT VALUES (0) ;
INSERT INTO T_ENTIER_ENT VALUES (1) ;
INSERT INTO T_ENTIER_ENT VALUES (2) ;
INSERT INTO T_ENTIER_ENT VALUES (3) ;
INSERT INTO T_ENTIER_ENT VALUES (4) ;
INSERT INTO T_ENTIER_ENT VALUES (5) ;
INSERT INTO T_ENTIER_ENT VALUES (6) ;
INSERT INTO T_ENTIER_ENT VALUES (7) ;
INSERT INTO T_ENTIER_ENT VALUES (8) ;
INSERT INTO T_ENTIER_ENT VALUES (9) ;

ENT_N
——
0
1
2
3
4
5
6
7
8
9

Sauriez vous faire une telle requête avec un seul update ?

Voici un extrait de la table des données à insérer :

NOMBRE
———–
10
11
12
13
14

9995
9996
9997
9998
9999

Ma réponse :

INSERT INTO T_ENTIER_ENT(ENT_N) SELECT MAX(ENT_N)+1 FROM T_ENTIER_ENT;
go 9991

prodigieux, non ?

Laisser un commentaire