IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Comment contourner la création de table


Sujet :

Développement SQL Server

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyste de données
    Inscrit en
    Février 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyste de données

    Informations forums :
    Inscription : Février 2016
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Comment contourner la création de table
    Bonjour,

    J'ai un gros problème : je n'ai pas les droits suffisants pour créer des tables sur SQL Server 2008 R2. et pourtant la création de contenu me rendrait véritablement service.

    J'ai pensé à 3 alternatives:
    - créer une table temporaire mais j'en suis allergique par principe sachant que je devrais l'incorporer à chaque vue. (create table #temp insert values into (...))
    - créer une CTE intégrant une table temporaire. Est ce possible ?
    - créer une vue multipliant les UNION.

    Avez vous une solution à me suggérer svp?

    Merci beaucoup pour vos soutiens

    Taranis70
    Motivé et formé à la méthode SQLPRO

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    créer une table temporaire mais j'en suis allergique par principe sachant que je devrais l'incorporer à chaque vue
    On ne peut pas créer de table temporaire dans une vue. Une vue est spécifiée par un seul SELECT, que l'on peut combiner à des CTE, tables dérivées, et UNION

    créer une CTE intégrant une table temporaire. Est ce possible ?
    Non. D'ailleurs les expressions de tables commune ont l'avantage de remplacer allègrement les tables temporaires

    créer une vue multipliant les UNION.
    Cela me semble être la meilleure approche pour votre cas.
    Attention à bien filtrer à la définition et à l'interrogation.

    Ne vous est-il pas possible de demander la création d'un schéma dans la base de donnés, dans lequel vous (ou le groupe duquel vous êtes membre) auriez les droits de création / modification / suppression de tables et modules SQL ?
    Ceci combiné à un droit en lecture seule sur les tables avec lesquelles vous devez travailler devrait vous sortir de cette situation.

    Si la consommation d'espace dans la base de données est une problème, peut-être qu'en créer une supplémentaire pour vous, en mode de récupération SIMPLE, pourrait vous servir de "bac à sable".
    Là aussi, un octroi d'accès en lecture seule sur les tables avec lesquelles vous devez travailler sur la base de données en question conviendra certainement.

    @++

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Analyste de données
    Inscrit en
    Février 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyste de données

    Informations forums :
    Inscription : Février 2016
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup Elsuket pour ta recommandation.
    Je vais me coltiner la solution des UNION en attendant que mes droits soient revus.

    Bonne journée

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Si la solution d'une vue avec UNION résous votre problème, c'est probablement que votre idée initiale (création d'une table) était mauvaise.

    Si vous précisez le contexte et ce que vous chercher a faire au final, on pourra sans doute mieux vous aider.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Analyste de données
    Inscrit en
    Février 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyste de données

    Informations forums :
    Inscription : Février 2016
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour à tous,

    Je vous fais un retour rapide suite aux recommandations que vous m'avez faites.
    Je me suis rapproché des administrateurs SQL et à priori, les regles de sécurité sont cloisonnées (on retourne dans le débat du besoin "Utilisateur" et non "Projet").

    Mon objectif initial était de pouvoir utiliser les ressources SQL pour opérer des requêtes fastidieuses sous formes de vues plutot que de retourner à l'age du fer (Excel et sa lenteur).

    Le premier cas était de créer une table comportant des infos géographiques pour éviter le CASE WHEN dans une requête (je vous épargnerai le CASE WHEN) toujours dans une optique de gain de temps.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    INSERT INTO #TABLE
    ('01','Ain','Auvergne-Rhône-Alpes'),
    ('02','Aisne','Nord-Pas-de-Calais-Picardie'),
    ('03','Allier','Auvergne-Rhône-Alpes'),
    ('04','Alpes-de-Haute-Provence','Provence-Alpes-Côte d''Azur'),
    ('05','Hautes-Alpes','Provence-Alpes-Côte d''Azur'),
    ('06','Alpes-Maritimes','Provence-Alpes-Côte d''Azur'),
    ('07','Ardèche','Auvergne-Rhône-Alpes'),
    ('08','Ardennes','Alsace-Champagne-Ardenne-Lorraine'),
    ('09','Ariège','Languedoc-Roussillon-Midi-Pyrénées'),
    ('10','Aube','Alsace-Champagne-Ardenne-Lorraine'),
    ('11','Aude','Languedoc-Roussillon-Midi-Pyrénées'),
    ('12','Aveyron','Languedoc-Roussillon-Midi-Pyrénées'),
    ('13','Bouches-du-Rhône','Provence-Alpes-Côte d''Azur'),
    ('14','Calvados','Normandie'),
    ('15','Cantal','Auvergne-Rhône-Alpes'),
    ('16','Charente','Aquitaine-Limousin-Poitou-Charentes'),
    ('17','Charente-Maritime','Aquitaine-Limousin-Poitou-Charentes'),
    ('18','Cher','Centre-Val de Loire'),
    ('19','Corrèze','Aquitaine-Limousin-Poitou-Charentes'),
    ('21','Côte-d''Or','Bourgogne-Franche-Comté'),
    ('22','Côtes-d''Armor','Bretagne'),
    ('23','Creuse','Aquitaine-Limousin-Poitou-Charentes'),
    ('24','Dordogne','Bretagne'),
    ('25','Doubs','Bourgogne-Franche-Comté'),
    ('26','Drôme','Auvergne-Rhône-Alpes'),
    ('27','Eure','Normandie'),
    ('28','Eure-et-Loir','Centre-Val de Loire'),
    ('29','Finistère','Bretagne'),
    ('30','Gard','Languedoc-Roussillon-Midi-Pyrénées'),
    ('31','Haute-Garonne','Languedoc-Roussillon-Midi-Pyrénées'),
    ('32','Gers','Languedoc-Roussillon-Midi-Pyrénées'),
    ('33','Gironde','Bretagne'),
    ('34','Hérault','Languedoc-Roussillon-Midi-Pyrénées'),
    ('35','Ille-et-Vilaine','Bretagne'),
    ('36','Indre','Centre-Val de Loire'),
    ('37','Indre-et-Loire','Centre-Val de Loire'),
    ('38','Isère','Auvergne-Rhône-Alpes'),
    ('39','Jura','Bourgogne-Franche-Comté'),
    ('40','Landes','Bretagne'),
    ('41','Loir-et-Cher','Centre-Val de Loire'),
    ('42','Loire','Auvergne-Rhône-Alpes'),
    ('43','Haute-Loire','Auvergne-Rhône-Alpes'),
    ('44','Loire-Atlantique','Pays de la Loire'),
    ('45','Loiret','Centre-Val de Loire'),
    ('46','Lot','Languedoc-Roussillon-Midi-Pyrénées'),
    ('47','Lot-et-Garonne','Bretagne'),
    ('48','Lozère','Languedoc-Roussillon-Midi-Pyrénées'),
    ('49','Maine-et-Loire','Pays de la Loire'),
    ('50','Manche','Normandie'),
    ('51','Marne','Alsace-Champagne-Ardenne-Lorraine'),
    ('52','Haute-Marne','Alsace-Champagne-Ardenne-Lorraine'),
    ('53','Mayenne','Pays de la Loire'),
    ('54','Meurthe-et-Moselle','Nord-Pas-de-Calais-Picardie'),
    ('55','Meuse','Nord-Pas-de-Calais-Picardie'),
    ('56','Morbihan','Bretagne'),
    ('57','Moselle','Nord-Pas-de-Calais-Picardie'),
    ('58','Nièvre','Bourgogne-Franche-Comté'),
    ('59','Nord','Nord-Pas-de-Calais-Picardie'),
    ('60','Oise','Nord-Pas-de-Calais-Picardie'),
    ('61','Orne','Normandie'),
    ('62','Pas-de-Calais','Nord-Pas-de-Calais-Picardie'),
    ('63','Puy-de-Dôme','Auvergne-Rhône-Alpes'),
    ('64','Pyrénées-Atlantiques','Bretagne'),
    ('65','Hautes-Pyrénées','Languedoc-Roussillon-Midi-Pyrénées'),
    ('66','Pyrénées-Orientales','Languedoc-Roussillon-Midi-Pyrénées'),
    ('67','Bas-Rhin','Alsace-Champagne-Ardenne-Lorraine'),
    ('68','Haut-Rhin','Alsace-Champagne-Ardenne-Lorraine'),
    ('69','Rhône','Auvergne-Rhône-Alpes'),
    ('70','Haute-Saône','Bourgogne-Franche-Comté'),
    ('71','Saône-et-Loire','Bourgogne-Franche-Comté'),
    ('72','Sarthe','Pays de la Loire'),
    ('73','Savoie','Auvergne-Rhône-Alpes'),
    ('74','Haute-Savoie','Auvergne-Rhône-Alpes'),
    ('75','Paris','Île-de-France'),
    ('76','Seine-Maritime','Normandie'),
    ('77','Seine-et-Marne','Île-de-France'),
    ('78','Yvelines','Île-de-France'),
    ('79','Deux-Sèvres','Aquitaine-Limousin-Poitou-Charentes'),
    ('80','Somme','Nord-Pas-de-Calais-Picardie'),
    ('81','Tarn','Languedoc-Roussillon-Midi-Pyrénées'),
    ('82','Tarn-et-Garonne','Languedoc-Roussillon-Midi-Pyrénées'),
    ('83','Var','Provence-Alpes-Côte d''Azur'),
    ('84','Vaucluse','Provence-Alpes-Côte d''Azur'),
    ('85','Vendée','Pays de la Loire'),
    ('86','Vienne','Aquitaine-Limousin-Poitou-Charentes'),
    ('87','Haute-Vienne','Aquitaine-Limousin-Poitou-Charentes'),
    ('88','Vosges','Nord-Pas-de-Calais-Picardie'),
    ('89','Yonne','Bourgogne-Franche-Comté'),
    ('90','Territoire de Belfort','Bourgogne-Franche-Comté'),
    ('91','Essonne','Île-de-France'),
    ('92','Hauts-de-Seine','Île-de-France'),
    ('93','Seine-Saint-Denis','Île-de-France'),
    ('94','Val-de-Marne','Île-de-France'),
    ('95','Val-d''Oise','Île-de-France'),
    ('971','Guadeloupe','Guadeloupe'),
    ('972','Martinique','Martinique'),
    ('973','Guyane','Guyane'),
    ('974','La Réunion','La Réunion'),
    ('976','Mayotte','Mayotte'),
    ('2A','Corse-du-Sud','Corse'),
    ('2B','Haute-Corse','Corse')
     
    select *
    from #Table
    drop table
    J'ai tenté de reproduire le même modèle qu'une table temporaire en UNION dans une requête simple sans succès.
    Par conséquent, je reste sur la solution CASE WHEN car je ne veux pas associer table temporaire et CTE dans une meme requete.

    Encore merci pour votre soutien

    Bonne journée

  6. #6
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 152
    Points : 7 402
    Points
    7 402
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    INSERT INTO #TABLE
    ('01','Ain','Auvergne-Rhône-Alpes'),
    ('02','Aisne','Nord-Pas-de-Calais-Picardie'),
    ('03','Allier','Auvergne-Rhône-Alpes'),
    ('04','Alpes-de-Haute-Provence','Provence-Alpes-Côte d''Azur'),
    ('05','Hautes-Alpes','Provence-Alpes-Côte d''Azur'),
    ('06','Alpes-Maritimes','Provence-Alpes-Côte d''Azur'),
    ('07','Ardèche','Auvergne-Rhône-Alpes'),
    ('08','Ardennes','Alsace-Champagne-Ardenne-Lorraine'),
    ('09','Ariège','Languedoc-Roussillon-Midi-Pyrénées'),
    ('10','Aube','Alsace-Champagne-Ardenne-Lorraine'),
    ('11','Aude','Languedoc-Roussillon-Midi-Pyrénées'),
    ('12','Aveyron','Languedoc-Roussillon-Midi-Pyrénées'),
    ('13','Bouches-du-Rhône','Provence-Alpes-Côte d''Azur'),
    ('14','Calvados','Normandie'),
    ('15','Cantal','Auvergne-Rhône-Alpes'),
    ('16','Charente','Aquitaine-Limousin-Poitou-Charentes'),
    ('17','Charente-Maritime','Aquitaine-Limousin-Poitou-Charentes'),
    ('18','Cher','Centre-Val de Loire'),
    ('19','Corrèze','Aquitaine-Limousin-Poitou-Charentes'),
    ('21','Côte-d''Or','Bourgogne-Franche-Comté'),
    ('22','Côtes-d''Armor','Bretagne'),
    ('23','Creuse','Aquitaine-Limousin-Poitou-Charentes'),
    ('24','Dordogne','Bretagne'),
    ('25','Doubs','Bourgogne-Franche-Comté'),
    ('26','Drôme','Auvergne-Rhône-Alpes'),
    ('27','Eure','Normandie'),
    ('28','Eure-et-Loir','Centre-Val de Loire'),
    ('29','Finistère','Bretagne'),
    ('30','Gard','Languedoc-Roussillon-Midi-Pyrénées'),
    ('31','Haute-Garonne','Languedoc-Roussillon-Midi-Pyrénées'),
    ('32','Gers','Languedoc-Roussillon-Midi-Pyrénées'),
    ('33','Gironde','Bretagne'),
    ('34','Hérault','Languedoc-Roussillon-Midi-Pyrénées'),
    ('35','Ille-et-Vilaine','Bretagne'),
    ('36','Indre','Centre-Val de Loire'),
    ('37','Indre-et-Loire','Centre-Val de Loire'),
    ('38','Isère','Auvergne-Rhône-Alpes'),
    ('39','Jura','Bourgogne-Franche-Comté'),
    ('40','Landes','Bretagne'),
    ('41','Loir-et-Cher','Centre-Val de Loire'),
    ('42','Loire','Auvergne-Rhône-Alpes'),
    ('43','Haute-Loire','Auvergne-Rhône-Alpes'),
    ('44','Loire-Atlantique','Pays de la Loire'),
    ('45','Loiret','Centre-Val de Loire'),
    ('46','Lot','Languedoc-Roussillon-Midi-Pyrénées'),
    ('47','Lot-et-Garonne','Bretagne'),
    ('48','Lozère','Languedoc-Roussillon-Midi-Pyrénées'),
    ('49','Maine-et-Loire','Pays de la Loire'),
    ('50','Manche','Normandie'),
    ('51','Marne','Alsace-Champagne-Ardenne-Lorraine'),
    ('52','Haute-Marne','Alsace-Champagne-Ardenne-Lorraine'),
    ('53','Mayenne','Pays de la Loire'),
    ('54','Meurthe-et-Moselle','Nord-Pas-de-Calais-Picardie'),
    ('55','Meuse','Nord-Pas-de-Calais-Picardie'),
    ('56','Morbihan','Bretagne'),
    ('57','Moselle','Nord-Pas-de-Calais-Picardie'),
    ('58','Nièvre','Bourgogne-Franche-Comté'),
    ('59','Nord','Nord-Pas-de-Calais-Picardie'),
    ('60','Oise','Nord-Pas-de-Calais-Picardie'),
    ('61','Orne','Normandie'),
    ('62','Pas-de-Calais','Nord-Pas-de-Calais-Picardie'),
    ('63','Puy-de-Dôme','Auvergne-Rhône-Alpes'),
    ('64','Pyrénées-Atlantiques','Bretagne'),
    ('65','Hautes-Pyrénées','Languedoc-Roussillon-Midi-Pyrénées'),
    ('66','Pyrénées-Orientales','Languedoc-Roussillon-Midi-Pyrénées'),
    ('67','Bas-Rhin','Alsace-Champagne-Ardenne-Lorraine'),
    ('68','Haut-Rhin','Alsace-Champagne-Ardenne-Lorraine'),
    ('69','Rhône','Auvergne-Rhône-Alpes'),
    ('70','Haute-Saône','Bourgogne-Franche-Comté'),
    ('71','Saône-et-Loire','Bourgogne-Franche-Comté'),
    ('72','Sarthe','Pays de la Loire'),
    ('73','Savoie','Auvergne-Rhône-Alpes'),
    ('74','Haute-Savoie','Auvergne-Rhône-Alpes'),
    ('75','Paris','Île-de-France'),
    ('76','Seine-Maritime','Normandie'),
    ('77','Seine-et-Marne','Île-de-France'),
    ('78','Yvelines','Île-de-France'),
    ('79','Deux-Sèvres','Aquitaine-Limousin-Poitou-Charentes'),
    ('80','Somme','Nord-Pas-de-Calais-Picardie'),
    ('81','Tarn','Languedoc-Roussillon-Midi-Pyrénées'),
    ('82','Tarn-et-Garonne','Languedoc-Roussillon-Midi-Pyrénées'),
    ('83','Var','Provence-Alpes-Côte d''Azur'),
    ('84','Vaucluse','Provence-Alpes-Côte d''Azur'),
    ('85','Vendée','Pays de la Loire'),
    ('86','Vienne','Aquitaine-Limousin-Poitou-Charentes'),
    ('87','Haute-Vienne','Aquitaine-Limousin-Poitou-Charentes'),
    ('88','Vosges','Nord-Pas-de-Calais-Picardie'),
    ('89','Yonne','Bourgogne-Franche-Comté'),
    ('90','Territoire de Belfort','Bourgogne-Franche-Comté'),
    ('91','Essonne','Île-de-France'),
    ('92','Hauts-de-Seine','Île-de-France'),
    ('93','Seine-Saint-Denis','Île-de-France'),
    ('94','Val-de-Marne','Île-de-France'),
    ('95','Val-d''Oise','Île-de-France'),
    ('971','Guadeloupe','Guadeloupe'),
    ('972','Martinique','Martinique'),
    ('973','Guyane','Guyane'),
    ('974','La Réunion','La Réunion'),
    ('976','Mayotte','Mayotte'),
    ('2A','Corse-du-Sud','Corse'),
    ('2B','Haute-Corse','Corse');
     
    select * from #TABLE;
    Peut avantageusement s'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
     
    with temp (id, dep, reg)
    as
    (
    select '01','Ain','Auvergne-Rhône-Alpes'
    union all
    select '02','Aisne','Nord-Pas-de-Calais-Picardie'
    union all
    select '03','Allier','Auvergne-Rhône-Alpes'
    union all
    select '04','Alpes-de-Haute-Provence','Provence-Alpes-Côte d''Azur'
    union all
    select '05','Hautes-Alpes','Provence-Alpes-Côte d''Azur'
    union all
    select '06','Alpes-Maritimes','Provence-Alpes-Côte d''Azur'
    union all
    select '07','Ardèche','Auvergne-Rhône-Alpes'
    union all
    select '08','Ardennes','Alsace-Champagne-Ardenne-Lorraine'
    union all
    select '09','Ariège','Languedoc-Roussillon-Midi-Pyrénées'
    union all
    select '10','Aube','Alsace-Champagne-Ardenne-Lorraine'
    union all
    select '11','Aude','Languedoc-Roussillon-Midi-Pyrénées'
    union all
    select '12','Aveyron','Languedoc-Roussillon-Midi-Pyrénées'
    union all
    select '13','Bouches-du-Rhône','Provence-Alpes-Côte d''Azur'
    union all
    select '14','Calvados','Normandie'
    union all
    select '15','Cantal','Auvergne-Rhône-Alpes'
    union all
    select '16','Charente','Aquitaine-Limousin-Poitou-Charentes'
    union all
    select '17','Charente-Maritime','Aquitaine-Limousin-Poitou-Charentes'
    union all
    select '18','Cher','Centre-Val de Loire'
    union all
    select '19','Corrèze','Aquitaine-Limousin-Poitou-Charentes'
    union all
    select '21','Côte-d''Or','Bourgogne-Franche-Comté'
    union all
    select '22','Côtes-d''Armor','Bretagne'
    union all
    select '23','Creuse','Aquitaine-Limousin-Poitou-Charentes'
    union all
    select '24','Dordogne','Bretagne'
    union all
    select '25','Doubs','Bourgogne-Franche-Comté'
    union all
    select '26','Drôme','Auvergne-Rhône-Alpes'
    union all
    select '27','Eure','Normandie'
    union all
    select '28','Eure-et-Loir','Centre-Val de Loire'
    union all
    select '29','Finistère','Bretagne'
    union all
    select '30','Gard','Languedoc-Roussillon-Midi-Pyrénées'
    union all
    select '31','Haute-Garonne','Languedoc-Roussillon-Midi-Pyrénées'
    union all
    select '32','Gers','Languedoc-Roussillon-Midi-Pyrénées'
    union all
    select '33','Gironde','Bretagne'
    union all
    select '34','Hérault','Languedoc-Roussillon-Midi-Pyrénées'
    union all
    select '35','Ille-et-Vilaine','Bretagne'
    union all
    select '36','Indre','Centre-Val de Loire'
    union all
    select '37','Indre-et-Loire','Centre-Val de Loire'
    union all
    select '38','Isère','Auvergne-Rhône-Alpes'
    union all
    select '39','Jura','Bourgogne-Franche-Comté'
    union all
    select '40','Landes','Bretagne'
    union all
    select '41','Loir-et-Cher','Centre-Val de Loire'
    union all
    select '42','Loire','Auvergne-Rhône-Alpes'
    union all
    select '43','Haute-Loire','Auvergne-Rhône-Alpes'
    union all
    select '44','Loire-Atlantique','Pays de la Loire'
    union all
    select '45','Loiret','Centre-Val de Loire'
    union all
    select '46','Lot','Languedoc-Roussillon-Midi-Pyrénées'
    union all
    select '47','Lot-et-Garonne','Bretagne'
    union all
    select '48','Lozère','Languedoc-Roussillon-Midi-Pyrénées'
    union all
    select '49','Maine-et-Loire','Pays de la Loire'
    union all
    select '50','Manche','Normandie'
    union all
    select '51','Marne','Alsace-Champagne-Ardenne-Lorraine'
    union all
    select '52','Haute-Marne','Alsace-Champagne-Ardenne-Lorraine'
    union all
    select '53','Mayenne','Pays de la Loire'
    union all
    select '54','Meurthe-et-Moselle','Nord-Pas-de-Calais-Picardie'
    union all
    select '55','Meuse','Nord-Pas-de-Calais-Picardie'
    union all
    select '56','Morbihan','Bretagne'
    union all
    select '57','Moselle','Nord-Pas-de-Calais-Picardie'
    union all
    select '58','Nièvre','Bourgogne-Franche-Comté'
    union all
    select '59','Nord','Nord-Pas-de-Calais-Picardie'
    union all
    select '60','Oise','Nord-Pas-de-Calais-Picardie'
    union all
    select '61','Orne','Normandie'
    union all
    select '62','Pas-de-Calais','Nord-Pas-de-Calais-Picardie'
    union all
    select '63','Puy-de-Dôme','Auvergne-Rhône-Alpes'
    union all
    select '64','Pyrénées-Atlantiques','Bretagne'
    union all
    select '65','Hautes-Pyrénées','Languedoc-Roussillon-Midi-Pyrénées'
    union all
    select '66','Pyrénées-Orientales','Languedoc-Roussillon-Midi-Pyrénées'
    union all
    select '67','Bas-Rhin','Alsace-Champagne-Ardenne-Lorraine'
    union all
    select '68','Haut-Rhin','Alsace-Champagne-Ardenne-Lorraine'
    union all
    select '69','Rhône','Auvergne-Rhône-Alpes'
    union all
    select '70','Haute-Saône','Bourgogne-Franche-Comté'
    union all
    select '71','Saône-et-Loire','Bourgogne-Franche-Comté'
    union all
    select '72','Sarthe','Pays de la Loire'
    union all
    select '73','Savoie','Auvergne-Rhône-Alpes'
    union all
    select '74','Haute-Savoie','Auvergne-Rhône-Alpes'
    union all
    select '75','Paris','Île-de-France'
    union all
    select '76','Seine-Maritime','Normandie'
    union all
    select '77','Seine-et-Marne','Île-de-France'
    union all
    select '78','Yvelines','Île-de-France'
    union all
    select '79','Deux-Sèvres','Aquitaine-Limousin-Poitou-Charentes'
    union all
    select '80','Somme','Nord-Pas-de-Calais-Picardie'
    union all
    select '81','Tarn','Languedoc-Roussillon-Midi-Pyrénées'
    union all
    select '82','Tarn-et-Garonne','Languedoc-Roussillon-Midi-Pyrénées'
    union all
    select '83','Var','Provence-Alpes-Côte d''Azur'
    union all
    select '84','Vaucluse','Provence-Alpes-Côte d''Azur'
    union all
    select '85','Vendée','Pays de la Loire'
    union all
    select '86','Vienne','Aquitaine-Limousin-Poitou-Charentes'
    union all
    select '87','Haute-Vienne','Aquitaine-Limousin-Poitou-Charentes'
    union all
    select '88','Vosges','Nord-Pas-de-Calais-Picardie'
    union all
    select '89','Yonne','Bourgogne-Franche-Comté'
    union all
    select '90','Territoire de Belfort','Bourgogne-Franche-Comté'
    union all
    select '91','Essonne','Île-de-France'
    union all
    select '92','Hauts-de-Seine','Île-de-France'
    union all
    select '93','Seine-Saint-Denis','Île-de-France'
    union all
    select '94','Val-de-Marne','Île-de-France'
    union all
    select '95','Val-d''Oise','Île-de-France'
    union all
    select '971','Guadeloupe','Guadeloupe'
    union all
    select '972','Martinique','Martinique'
    union all
    select '973','Guyane','Guyane'
    union all
    select '974','La Réunion','La Réunion'
    union all
    select '976','Mayotte','Mayotte'
    union all
    select '2A','Corse-du-Sud','Corse'
    union all
    select '2B','Haute-Corse','Corse'
    )
    select * from temp;
    Et donc plus de table temporaire, mais une CTE en lieu et place !
    On ne jouit bien que de ce qu’on partage.

  7. #7
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Ou encore, dans la limite des 1000 tuples :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    WITH
    	CTE AS
    	(
    		SELECT	numero, nom_department, nom_region
    		FROM	(
    				VALUES ('01','Ain','Auvergne-Rhône-Alpes'),
    				('02','Aisne','Nord-Pas-de-Calais-Picardie'),
    				('03','Allier','Auvergne-Rhône-Alpes'),
    				('04','Alpes-de-Haute-Provence','Provence-Alpes-Côte d''Azur'),
    				('05','Hautes-Alpes','Provence-Alpes-Côte d''Azur'),
    				('06','Alpes-Maritimes','Provence-Alpes-Côte d''Azur'),
    				('07','Ardèche','Auvergne-Rhône-Alpes'),
    				('08','Ardennes','Alsace-Champagne-Ardenne-Lorraine'),
    				('09','Ariège','Languedoc-Roussillon-Midi-Pyrénées'),
    				('10','Aube','Alsace-Champagne-Ardenne-Lorraine'),
    				('11','Aude','Languedoc-Roussillon-Midi-Pyrénées'),
    				('12','Aveyron','Languedoc-Roussillon-Midi-Pyrénées'),
    				('13','Bouches-du-Rhône','Provence-Alpes-Côte d''Azur'),
    				('14','Calvados','Normandie'),
    				('15','Cantal','Auvergne-Rhône-Alpes'),
    				('16','Charente','Aquitaine-Limousin-Poitou-Charentes'),
    				('17','Charente-Maritime','Aquitaine-Limousin-Poitou-Charentes'),
    				('18','Cher','Centre-Val de Loire'),
    				('19','Corrèze','Aquitaine-Limousin-Poitou-Charentes'),
    				('21','Côte-d''Or','Bourgogne-Franche-Comté'),
    				('22','Côtes-d''Armor','Bretagne'),
    				('23','Creuse','Aquitaine-Limousin-Poitou-Charentes'),
    				('24','Dordogne','Bretagne'),
    				('25','Doubs','Bourgogne-Franche-Comté'),
    				('26','Drôme','Auvergne-Rhône-Alpes'),
    				('27','Eure','Normandie'),
    				('28','Eure-et-Loir','Centre-Val de Loire'),
    				('29','Finistère','Bretagne'),
    				('30','Gard','Languedoc-Roussillon-Midi-Pyrénées'),
    				('31','Haute-Garonne','Languedoc-Roussillon-Midi-Pyrénées'),
    				('32','Gers','Languedoc-Roussillon-Midi-Pyrénées'),
    				('33','Gironde','Bretagne'),
    				('34','Hérault','Languedoc-Roussillon-Midi-Pyrénées'),
    				('35','Ille-et-Vilaine','Bretagne'),
    				('36','Indre','Centre-Val de Loire'),
    				('37','Indre-et-Loire','Centre-Val de Loire'),
    				('38','Isère','Auvergne-Rhône-Alpes'),
    				('39','Jura','Bourgogne-Franche-Comté'),
    				('40','Landes','Bretagne'),
    				('41','Loir-et-Cher','Centre-Val de Loire'),
    				('42','Loire','Auvergne-Rhône-Alpes'),
    				('43','Haute-Loire','Auvergne-Rhône-Alpes'),
    				('44','Loire-Atlantique','Pays de la Loire'),
    				('45','Loiret','Centre-Val de Loire'),
    				('46','Lot','Languedoc-Roussillon-Midi-Pyrénées'),
    				('47','Lot-et-Garonne','Bretagne'),
    				('48','Lozère','Languedoc-Roussillon-Midi-Pyrénées'),
    				('49','Maine-et-Loire','Pays de la Loire'),
    				('50','Manche','Normandie'),
    				('51','Marne','Alsace-Champagne-Ardenne-Lorraine'),
    				('52','Haute-Marne','Alsace-Champagne-Ardenne-Lorraine'),
    				('53','Mayenne','Pays de la Loire'),
    				('54','Meurthe-et-Moselle','Nord-Pas-de-Calais-Picardie'),
    				('55','Meuse','Nord-Pas-de-Calais-Picardie'),
    				('56','Morbihan','Bretagne'),
    				('57','Moselle','Nord-Pas-de-Calais-Picardie'),
    				('58','Nièvre','Bourgogne-Franche-Comté'),
    				('59','Nord','Nord-Pas-de-Calais-Picardie'),
    				('60','Oise','Nord-Pas-de-Calais-Picardie'),
    				('61','Orne','Normandie'),
    				('62','Pas-de-Calais','Nord-Pas-de-Calais-Picardie'),
    				('63','Puy-de-Dôme','Auvergne-Rhône-Alpes'),
    				('64','Pyrénées-Atlantiques','Bretagne'),
    				('65','Hautes-Pyrénées','Languedoc-Roussillon-Midi-Pyrénées'),
    				('66','Pyrénées-Orientales','Languedoc-Roussillon-Midi-Pyrénées'),
    				('67','Bas-Rhin','Alsace-Champagne-Ardenne-Lorraine'),
    				('68','Haut-Rhin','Alsace-Champagne-Ardenne-Lorraine'),
    				('69','Rhône','Auvergne-Rhône-Alpes'),
    				('70','Haute-Saône','Bourgogne-Franche-Comté'),
    				('71','Saône-et-Loire','Bourgogne-Franche-Comté'),
    				('72','Sarthe','Pays de la Loire'),
    				('73','Savoie','Auvergne-Rhône-Alpes'),
    				('74','Haute-Savoie','Auvergne-Rhône-Alpes'),
    				('75','Paris','Île-de-France'),
    				('76','Seine-Maritime','Normandie'),
    				('77','Seine-et-Marne','Île-de-France'),
    				('78','Yvelines','Île-de-France'),
    				('79','Deux-Sèvres','Aquitaine-Limousin-Poitou-Charentes'),
    				('80','Somme','Nord-Pas-de-Calais-Picardie'),
    				('81','Tarn','Languedoc-Roussillon-Midi-Pyrénées'),
    				('82','Tarn-et-Garonne','Languedoc-Roussillon-Midi-Pyrénées'),
    				('83','Var','Provence-Alpes-Côte d''Azur'),
    				('84','Vaucluse','Provence-Alpes-Côte d''Azur'),
    				('85','Vendée','Pays de la Loire'),
    				('86','Vienne','Aquitaine-Limousin-Poitou-Charentes'),
    				('87','Haute-Vienne','Aquitaine-Limousin-Poitou-Charentes'),
    				('88','Vosges','Nord-Pas-de-Calais-Picardie'),
    				('89','Yonne','Bourgogne-Franche-Comté'),
    				('90','Territoire de Belfort','Bourgogne-Franche-Comté'),
    				('91','Essonne','Île-de-France'),
    				('92','Hauts-de-Seine','Île-de-France'),
    				('93','Seine-Saint-Denis','Île-de-France'),
    				('94','Val-de-Marne','Île-de-France'),
    				('95','Val-d''Oise','Île-de-France'),
    				('971','Guadeloupe','Guadeloupe'),
    				('972','Martinique','Martinique'),
    				('973','Guyane','Guyane'),
    				('974','La Réunion','La Réunion'),
    				('976','Mayotte','Mayotte'),
    				('2A','Corse-du-Sud','Corse'),
    				('2B','Haute-Corse','Corse')
    			) AS V(numero, nom_department, nom_region)
    	)
     SELECT	*
     FROM	CTE
    @++

  8. #8
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Ou encore, dans la limite des 1000 tuples :
    Je préfère également cette notation, claire et concise.

    En revanche, je ne connaissais pas la limite des 1000 tuples et... mon SQL Server 2008 R2 non plus

    (j'ai fait un test avec plus de 50 000 lignes et ça passe, c'est plus SSMS qui a un peu de mal...)

  9. #9
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 152
    Points : 7 402
    Points
    7 402
    Billets dans le blog
    1
    Par défaut
    Tiens, je connaissais pas cette syntaxe. Clairement mieux en effet que tous ces UNION
    On ne jouit bien que de ce qu’on partage.

  10. #10
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Citation Envoyé par aieeeuuuuu
    En revanche, je ne connaissais pas la limite des 1000 tuples et... mon SQL Server 2008 R2 non plus
    Bien vu ! En fait la limitation est à l'INSERT (sans CTE ), c'est à dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO maTable ([colonnes])
    VALUES ([tuple1]), ([tuple2]), ... ([tupleN])
    Si l'on dépasse cette limite, l'exception suivante est levée :

    Msg 10738, Level 15, State 1, Line 1014
    The number of row value expressions in the INSERT statement exceeds the maximum allowed number of 1000 row values.
    En revanche on peut effectivement contourner cette limitation avec un CTE, c'est à dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    WITH
    	CTE AS
    	(
    		SELECT	*
    		FROM	(
    				VALUES ([tuple1]), ([tuple2]), ... ([tupleN])
    			) AS V([colonnes])
    	)
    INSERT INTO maTable
    (
    	[colonnes]
    )
    SELECT	*
    FROM	CTE
    @++

  11. #11
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Bonjour,

    Je comprends le cloisonnement sécuritaire mais leur avez vous demandé, code des vues à l'appuie de vous les déployer eux même?
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

Discussions similaires

  1. comment faire la création d'un table Access
    Par nawel87 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 06/06/2011, 09h52
  2. Création de tables : Où et Comment ?
    Par philou22 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/12/2004, 15h45
  3. (VC++6 /C) Pb de création de table Paradox
    Par Vow dans le forum Paradox
    Réponses: 4
    Dernier message: 28/09/2004, 13h15
  4. Création de table avec index
    Par Seb7 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/04/2003, 16h11
  5. Création multiple table paradox dans le code
    Par scarabee dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/10/2002, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo