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

MS SQL Server Discussion :

SQL Server 2008 : les nouveautés . . .


Sujet :

MS SQL Server

  1. #1
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut SQL Server 2008 : les nouveautés . . .
    La prochaine version de MS SQL Server sortira en 2008. Son nom de code est katmai.
    Parmi les nouveautés :
    1) types SQL date et time (date, time, datetime2, datetimeoffset) avec rajout de la semaine iso et gestion des fuseaux horaires
    2) compression des données pour le Data Warehouse
    3) ordre SQL MERGE (INSERT et UPDATE combiné)
    4) possibilité d'implanter des règles de securité (par exemple respect d'une police de nommage - à l'instar des GPO de Windows)
    5) module de géolocalisation spatial (SIG)
    6) creation possible de nouveaux roles de serveur
    7) nouveau type "hiérarchie" (arbres)
    8) nouveau type filestream (proche du datalink de la norme SQL, permettant de considérer un fichier comme une donnée d'une colonne d'une table
    9) ajout du type table
    10) ajout du paramétrage de nom de table pour les requêtes (exemple : SELECT * FROM @MaVariableTable)
    11) sauvegardes compressées
    12) possibilité de definir des groupes pour gérer les ressources physiques, par exemple pour avantager les requêtes de production au détriment des requêtes d'admin (Resource Gouvernor)
    13) intégration du langage d'interrogation LINQ (Language Integrated Query) permettant de faire des requêtes d'interrogation évoluées
    14) Ajout du GROUPING SETS pour les fonctions OLAP des bases OLTP
    15) tracabilité des données (accès asynchrone au données modifiées dans les tables)
    16) Intégration plus forte avec Office
    17) Nombreuses avancées pour BI.
    Et encore bien d'autres choses !

    Annonce MS :
    http://www.microsoft.com/presspass/p...9KatmaiPR.mspx

    Site MS du produit :
    http://www.microsoft.com/sql/prodinf...n/default.mspx
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 347
    Points : 136
    Points
    136
    Par défaut ok
    les points 3,7,8 et 9 sont de grandes avancées.
    ça va facilité la vie de bcp de programmeur.

    ces fonctionnalités existent chez les autres SGBD concurrents ?

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 3
    Points : 4
    Points
    4
    Par défaut MsSQL 2008
    Bonjour,
    Perso j'attends avec impatience l'option 10, que de temps passé avec les Sp_ExecuteSQL pour quelque chose d'approchant.
    Merci pour l'info et longue vie au Forum.
    Alain

  4. #4
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2002
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2002
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    C'est sûr que de nouveaux types de données évolués, c'est tjs appréciables. Mais je suis surtout curieux de découvrir Link, en relation avec C# 3.0.

    Par contre, je ne comprend pas bien ce qu'un SIG vient faire dans un SGBDR.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut
    Le point 8) manquait cruellement à SQL Server! Content de voir qu'ils comblent cette lacune!
    Arrêtez de poster des liens! Expliquez! (ça évite les erreur HTTP 404)

    L'homme est plus fort que la machine... ne renoncez jamais


  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Pour le SIG, c'est dans la norme SQL...

    ISO/IEC 13249:2003 Part 3: Spatial
    ISO/IEC 13249-3:2003:
    • introduces the Spatial part of ISO/IEC 13249 (all parts);
    • gives the references necessary for ISO/IEC 13249-3:2003;
    • defines notations and conventions specific to ISO/IEC 13249-3:2003;
    • defines concepts specific to ISO/IEC 13249-3:2003;
    • defines spatial user-defined types and their associated routines.
    The spatial user-defined types defined in ISO/IEC 13249-3:2003 adhere to the following.
    • A spatial user-defined type is generic to spatial data handling. It addresses the need to store, manage and retrieve information based on aspects of spatial data such as geometry, location and topology.
    • A spatial user-defined type does not redefine the database language SQL directly or in combination with another spatial data type.
    Implementations of ISO/IEC 13249-3:2003 may exist in environments that also support geographic information, decision support, data mining and data warehousing systems.
    Application areas addressed by implementations of ISO/IEC 13249-3:2003 include, but are not restricted to, automated mapping, desktop mapping, facilities management, geoengineering, graphics, multimedia and resource management applications.
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre du Club
    Profil pro
    Webmaster
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 50
    Points
    50
    Par défaut
    La clause LIMIT sera-t-elle ajoutée cette fois-ci ou non ?

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Aucun intéret. Cette clause n'existe pas en SQL et relève de l'idiotie pure car anti relationnelle. De plus SQL Server fait du TOP qui est l'équivalent (et pas franchement mieux !).

    En revanche la norme SQL propose les fonctions de fenêtrage qui réponde a ce genre de problématique (et à bien d'autres d'ailleurs) et sont implémentées depuis la version 2005.

    Pour un exemple de ces fonctions, lire l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/SQL_Server_2K5/N1.php
    1.7 Fonctions de classement et d'énumération (norme SQL:2003) :

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  9. #9
    Membre du Club
    Profil pro
    Webmaster
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 50
    Points
    50
    Par défaut
    Aucun intérêt? Je trouve un certain intérêt à écrire 10 caractères de plus plutôt que 3 lignes de plus pour limiter mon jeu de résultats retourné. Après, chacun son truc.

  10. #10
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    En complement, vous avez :

    18-L'encryption de la totalité de la base de données
    19-L'encryption des sauvegardes
    20-L'audit de la sécurité pour la protection des données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    AUDIT UPDATE(Salary) ON Employee TO MyAuditFolder WHERE Salary>200000
    AUDIT LOGON TO MyAuditFolder
    21-Fonctionalités de synchronisations de données.
    ...

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  11. #11
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    A propos de LIMIT :
    Aucun intérêt? Je trouve un certain intérêt à écrire 10 caractères de plus plutôt que 3 lignes de plus pour limiter mon jeu de résultats retourné. Après, chacun son truc.
    Aucun intérêt tout simplement par ce que les opérateurs TOP ou LIMIT sont anti relationnels et conduisent à des erreurs graves que des développeurs à courte vue sont incapable de voir !

    Démonstration :
    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
     
    CREATE TABLE T_CLIENT
    (CLI_ID int NOT NULL ,
     TIT_CODE char (8) ,
     CLI_NOM char (32) ,
     CLI_PRENOM varchar (25) ,
     CLI_ENSEIGNE varchar (100))
     
     
    INSERT INTO T_CLIENT VALUES (1, 'M.', 'DUPONT', 'Alain' , NULL)
    INSERT INTO T_CLIENT VALUES (2, 'M.', 'MARTIN', 'Marc' , 'Transports MARTIN & fils')
    INSERT INTO T_CLIENT VALUES (3, 'M.', 'BOUVIER', 'Alain' , NULL)
    INSERT INTO T_CLIENT VALUES (4, 'M.', 'DUBOIS', 'Paul' , NULL)
    INSERT INTO T_CLIENT VALUES (5, 'M.', 'DREYFUS', 'Jean' , NULL)
    INSERT INTO T_CLIENT VALUES (6, 'M.', 'FAURE', 'Alain' , 'Boulangerie du marché')
    INSERT INTO T_CLIENT VALUES (7, 'M.', 'LACOMBE', 'Paul' , NULL)
    INSERT INTO T_CLIENT VALUES (8, 'Melle.', 'DUHAMEL', 'Evelyne' , NULL)
    INSERT INTO T_CLIENT VALUES (9, 'Mme.', 'BOYER', 'Martine' , NULL)
    INSERT INTO T_CLIENT VALUES (10, 'M.', 'MARTIN', 'Martin' , 'HERMAREX IMPORT_EXPORT')
    INSERT INTO T_CLIENT VALUES (11, 'M.', 'PAUL', 'Marcel' , 'Cie Internationale des Machines Electromécaniques')
    INSERT INTO T_CLIENT VALUES (12, 'M.', 'DUVAL', 'Arsène' , NULL)
    INSERT INTO T_CLIENT VALUES (13, 'M.', 'PHILIPPE', 'André' , NULL)
    INSERT INTO T_CLIENT VALUES (14, 'M.', 'PIERRELAYE', 'Paul' , NULL)
    INSERT INTO T_CLIENT VALUES (15, 'Melle.', 'DAUMIER', 'Amélie' , NULL)
    INSERT INTO T_CLIENT VALUES (16, 'M.', 'CHABAUD', 'Daniel' , NULL)
    INSERT INTO T_CLIENT VALUES (17, 'M.', 'BAILLY', 'Jean-François' , 'Entreprise DUPONT CHAUFFAGE')
    INSERT INTO T_CLIENT VALUES (18, 'M.', 'FAYOLLE', 'Olivier' , NULL)
    INSERT INTO T_CLIENT VALUES (19, 'M.', 'COCINO', 'Gérard' , NULL)
    INSERT INTO T_CLIENT VALUES (20, 'M.', 'FRANQUINET', 'Florent' , NULL)
    INSERT INTO T_CLIENT VALUES (21, 'M.', 'MALATERRE', 'Arnaud' , NULL)
    INSERT INTO T_CLIENT VALUES (22, 'M.', 'MEDARD', 'Jacques' , NULL)
    INSERT INTO T_CLIENT VALUES (23, 'M.', 'AUZENAT', 'Michel' , NULL)
    INSERT INTO T_CLIENT VALUES (24, 'M.', 'CHTCHEPINE', 'Dominique' , 'HOTEL *** DE LA GARE')
    INSERT INTO T_CLIENT VALUES (25, 'M.', 'LE GUILLARD', 'Alain' , NULL)
    INSERT INTO T_CLIENT VALUES (26, 'M.', 'GARREAU', 'Paul' , 'IBM Corp.')
    INSERT INTO T_CLIENT VALUES (27, 'M.', 'LECUYER', 'Lionel' , NULL)
    INSERT INTO T_CLIENT VALUES (28, 'M.', 'PRA-LETTRY', 'Emmanuel' , NULL)
    INSERT INTO T_CLIENT VALUES (29, 'M.', 'SILLET', 'Jacques' , NULL)
    INSERT INTO T_CLIENT VALUES (30, 'M.', 'TROLLAT', 'Hervé' , NULL)
    INSERT INTO T_CLIENT VALUES (31, 'M.', 'BOUCHET', 'Michel' , NULL)
    INSERT INTO T_CLIENT VALUES (32, 'M.', 'LEBAILLIF', 'Christian' , NULL)
    INSERT INTO T_CLIENT VALUES (33, 'M.', 'DU HAUT CILLY', 'Guy' , NULL)
    INSERT INTO T_CLIENT VALUES (34, 'Mme.', 'GALLACIER', 'Noëlle' , 'Transports GALLACIER')
    INSERT INTO T_CLIENT VALUES (35, 'M.', 'PICOT', 'Dominique' , NULL)
    INSERT INTO T_CLIENT VALUES (36, 'M.', 'BEAUNEE', 'Pierre' , NULL)
    INSERT INTO T_CLIENT VALUES (37, 'M.', 'VERNET', 'Daniel' , NULL)
    INSERT INTO T_CLIENT VALUES (38, 'M.', 'ALBERT', 'Christian' , NULL)
    INSERT INTO T_CLIENT VALUES (39, 'Mme.', 'HESS', 'Lucette' , NULL)
    INSERT INTO T_CLIENT VALUES (40, 'M.', 'CHATON', 'Gérard' , NULL)
    INSERT INTO T_CLIENT VALUES (41, 'M.', 'PLATONOFF', 'Philippe' , NULL)
    INSERT INTO T_CLIENT VALUES (42, 'Mme.', 'LETERRIER', 'Monique' , 'SA AROMAX ENTREVONT')
    INSERT INTO T_CLIENT VALUES (43, 'M.', 'MONTEIL', 'Jean' , NULL)
    INSERT INTO T_CLIENT VALUES (44, 'M.', 'SPITHAKIS', 'Jean-Paul' , NULL)
    INSERT INTO T_CLIENT VALUES (45, 'M.', 'ORELL', 'Olivier' , NULL)
    INSERT INTO T_CLIENT VALUES (46, 'Mme.', 'MARTINET', 'Carmen' , NULL)
    INSERT INTO T_CLIENT VALUES (47, 'M.', 'RAY', 'Yannick' , NULL)
    INSERT INTO T_CLIENT VALUES (48, 'M.', 'TARSAC', 'René' , NULL)
    INSERT INTO T_CLIENT VALUES (49, 'M.', 'COULOMB', 'Renaud' , 'Cabinet COULOMN et CALEMANT')
    INSERT INTO T_CLIENT VALUES (50, 'M.', 'SAVY', 'Jean-Claude' , 'Etude et conseil SAVY frères')
    INSERT INTO T_CLIENT VALUES (51, 'Mme.', 'DAVID', 'Jacqueline' , NULL)
    INSERT INTO T_CLIENT VALUES (52, 'M.', 'FORGEOT', 'Jean-Bernard' , NULL)
    INSERT INTO T_CLIENT VALUES (53, 'M.', 'BERGER', 'Jean-Pierre' , NULL)
    INSERT INTO T_CLIENT VALUES (54, 'M.', 'DOUBLET', 'Thierry' , NULL)
    INSERT INTO T_CLIENT VALUES (55, 'M.', 'MATHIEU', 'Gérard' , NULL)
    INSERT INTO T_CLIENT VALUES (56, 'Mme.', 'MOURGUES', 'Jacqueline' , NULL)
    INSERT INTO T_CLIENT VALUES (57, 'M.', 'PIERROT', 'Robert' , NULL)
    INSERT INTO T_CLIENT VALUES (58, 'M.', 'FRANQUEBALME', 'Daniel' , 'SA DUBOIS-MORISSE')
    INSERT INTO T_CLIENT VALUES (59, 'Mme.', 'ZAMPIERO', 'Annick' , NULL)
    INSERT INTO T_CLIENT VALUES (60, 'M.', 'PASCOT', 'Vincent' , NULL)
    INSERT INTO T_CLIENT VALUES (61, 'M.', 'MECHRI', 'Pierre' , NULL)
    INSERT INTO T_CLIENT VALUES (62, 'M.', 'THIERY', 'Fathy' , NULL)
    INSERT INTO T_CLIENT VALUES (63, 'Mme.', 'ROURE', 'Marie-Louise' , NULL)
    INSERT INTO T_CLIENT VALUES (64, 'M.', 'VILLE', 'Jean-Paul' , NULL)
    INSERT INTO T_CLIENT VALUES (65, 'M.', 'NOCENTINI', 'Alain' , NULL)
    INSERT INTO T_CLIENT VALUES (66, 'M.', 'LAYANI', 'Lionel' , 'Restaurant Les Près d''Amélie')
    INSERT INTO T_CLIENT VALUES (67, 'M.', 'RECHUL', 'Jacques' , NULL)
    INSERT INTO T_CLIENT VALUES (68, 'Mme.', 'DE CONINCK', 'Patricia' , NULL)
    INSERT INTO T_CLIENT VALUES (69, 'M.', 'LEI', 'Alain' , NULL)
    INSERT INTO T_CLIENT VALUES (70, 'M.', 'MICHEL', 'Fernand' , 'HOTEL DE LA POSTE')
    INSERT INTO T_CLIENT VALUES (71, 'M.', 'BOURA', 'André' , 'CAFE DES SPORTS')
    INSERT INTO T_CLIENT VALUES (72, 'M.', 'CARDONA', 'Philippe' , NULL)
    INSERT INTO T_CLIENT VALUES (73, 'M.', 'THOMASSE', 'Jean-Claude' , NULL)
    INSERT INTO T_CLIENT VALUES (74, 'Mme.', 'MOURIES', 'Nathalie' , NULL)
    INSERT INTO T_CLIENT VALUES (75, 'M.', 'MARTIN', 'Jean-Pierre' , NULL)
    INSERT INTO T_CLIENT VALUES (76, 'M.', 'BENZAQUI', 'Joël' , NULL)
    INSERT INTO T_CLIENT VALUES (77, 'M.', 'ROUSSILLON', 'Alain' , NULL)
    INSERT INTO T_CLIENT VALUES (78, 'M.', 'FARGETTON', 'Denis' , NULL)
    INSERT INTO T_CLIENT VALUES (79, 'M.', 'LEPERCQ', 'Jean-Claude' , NULL)
    INSERT INTO T_CLIENT VALUES (80, 'M.', 'OLIVIA', 'Hubert' , 'La Table de Méditérranée (restaurant)')
    INSERT INTO T_CLIENT VALUES (81, 'M.', 'CASTAREDE', 'Jean-Jacques' , NULL)
    INSERT INTO T_CLIENT VALUES (82, 'M.', 'LEOTARD', 'Jean-Paul' , NULL)
    INSERT INTO T_CLIENT VALUES (83, 'Mme.', 'LALANDE', 'Colette' , NULL)
    INSERT INTO T_CLIENT VALUES (84, 'M.', 'BAVEREL', 'Frédéric' , NULL)
    INSERT INTO T_CLIENT VALUES (85, 'M.', 'NOEL', 'Régis' , NULL)
    INSERT INTO T_CLIENT VALUES (86, 'M.', 'THIRIOT', 'Jacky' , NULL)
    INSERT INTO T_CLIENT VALUES (87, 'M.', 'BERTRAND', 'Christophe' , NULL)
    INSERT INTO T_CLIENT VALUES (88, 'M.', 'BACQUE', 'Michel' , 'GARAGE DU CENTRE')
    INSERT INTO T_CLIENT VALUES (89, 'M.', 'COUASSE', 'François' , 'SA IMPEX internatonal')
    INSERT INTO T_CLIENT VALUES (90, 'M.', 'JOLY', 'Christophe' , NULL)
    INSERT INTO T_CLIENT VALUES (91, 'M.', 'BENATTAR', 'Pierre' , NULL)
    INSERT INTO T_CLIENT VALUES (92, 'Mme.', 'PARIS', 'Michèle' , NULL)
    INSERT INTO T_CLIENT VALUES (93, 'Mme.', 'LEAL', 'Jany' , NULL)
    INSERT INTO T_CLIENT VALUES (94, 'M.', 'BENATTAR', 'Bernard' , NULL)
    INSERT INTO T_CLIENT VALUES (95, 'M.', 'AIACH', 'Alexandre' , NULL)
    INSERT INTO T_CLIENT VALUES (96, 'M.', 'GAL', 'Fabrice' , NULL)
    INSERT INTO T_CLIENT VALUES (97, 'Mme.', 'CHAMBON', 'Edith' , NULL)
    INSERT INTO T_CLIENT VALUES (98, 'M.', 'DUQUESNAY', 'Jacques' , NULL)
    INSERT INTO T_CLIENT VALUES (99, 'M.', 'CHEVALLIER-CHANTEPIE', 'Yanis' , NULL)
    INSERT INTO T_CLIENT VALUES (100, 'M.', 'JEAN', 'Henri' , 'Ambulances Tour Eiffel')
    INSERT INTO T_CLIENT VALUES (101, 'M.', 'DARBOIS', 'Patrick' , NULL)
     
    SELECT COUNT(*) N FROM T_CLIENT
     
    N           
    ----------- 
    101
     
    SELECT TOP 1 CLI_ID, CLI_NOM
    FROM   T_CLIENT
    ORDER  BY LEN(CLI_NOM) 
     
    CLI_ID      CLI_NOM                          
    ----------- -------------------------------- 
    47          RAY 
     
    SELECT TOP 1 PERCENT  CLI_ID, CLI_NOM
    FROM   T_CLIENT
    ORDER  BY LEN(CLI_NOM) 
     
    CLI_ID      CLI_NOM                          
    ----------- -------------------------------- 
    47          RAY                             
    69          LEI 
     
    -- 1% de 101 = 2 !!! Fabuleux...
     
    SELECT TOP 1 PERCENT WITH TIES  CLI_ID, CLI_NOM
    FROM   T_CLIENT
    ORDER  BY LEN(CLI_NOM) 
     
    CLI_ID      CLI_NOM                          
    ----------- -------------------------------- 
    47          RAY                             
    69          LEI                             
    96          GAL  
     
    -- 1% de 101 = 3 avec la queue !
     
    SELECT  CLI_ID, CLI_NOM, LEN(CLI_NOM) AS L
    FROM   T_CLIENT
    ORDER BY L ASC
     
    CLI_ID      CLI_NOM                          L           
    ----------- -------------------------------- ----------- 
    47          RAY                              3
    69          LEI                              3
    96          GAL                              3
    100         JEAN                             4
    85          NOEL                             4
    ...
    la bonne réponse dans tous les cas doit être 3 lignes, car il n'y a aucune raison que la requête Top 1 retourne Ray en non pas LEI ou GAL... Depuis quand un SGBDR choisit-il lui même les données qu'il désire renvoyer à l'utilisateur ????

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  12. #12
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 182
    Points : 113
    Points
    113
    Par défaut
    Y'a t'il des améliorations au niveau des performances du moteur de requetes ?
    Ou ca reste à peu prés le meme que le 2000 et 2005 ?

  13. #13
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Pas de gros changement du moteur relationnel sauf pour les ajouts au niveau SQL. Donc pas de différence sensible de comportement à priori !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  14. #14
    Membre confirmé Avatar de KibitO
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 616
    Points : 606
    Points
    606
    Par défaut
    Je suis bluffé par cette nouvelle version

  15. #15
    CUCARACHA
    Invité(e)
    Par défaut Problème téléchargemement SQL Server 2008
    Salut,

    J'ai téléchargé les 4 disques ISO de SQL Server 2008. Ils sont notés 1/4...4/4.
    J'ai lancé l'installation et, ô surprise, le setup me demande un 5ème disque...

    Si l'un d'entre vous à une idée de la raison de cet échec d'installation, je suis preneur...

    @+

    Laurent

  16. #16
    Membre confirmé Avatar de KibitO
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 616
    Points : 606
    Points
    606
    Par défaut
    Peut-être y a t-il un 5e CD, comme pour les versions SBS Premium..

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    A propos de LIMIT :


    Aucun intérêt tout simplement par ce que les opérateurs TOP ou LIMIT sont anti relationnels et conduisent à des erreurs graves que des développeurs à courte vue sont incapable de voir !

    Démonstration :

    la bonne réponse dans tous les cas doit être 3 lignes, car il n'y a aucune raison que la requête Top 1 retourne Ray en non pas LEI ou GAL... Depuis quand un SGBDR choisit-il lui même les données qu'il désire renvoyer à l'utilisateur ????

    en fait tu as raison mais je trouve ton exemple peu pertinent. Le TOP peut être très utile et ne doit pas être "Eviter à tout prix" comme tu le prétends.

    En revanche il faut en connaître les limites, une bonne règle de gestion pour éviter les conflits dont tu faits part est d'autoriser les TOP uniquement sur des ORDER BY sur des champs uniques de type numérique. Alors tu es sûr de na jamais avoir de problème...
    Arrêtez de poster des liens! Expliquez! (ça évite les erreur HTTP 404)

    L'homme est plus fort que la machine... ne renoncez jamais


  18. #18
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Pourquoi utiliser TOP alors que la norme SQL à résolu le probléme avec les fonctions de fenêtrage comme RANK, DENSE_RANK et ROW_NUMBER ?????
    C'est comme si vous disiez, je préfère arrêter ma voiture ou je pense que c'est nécessaire à un carrefour, car je ne voit pas pourquoi je respecterais les feux rouge...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut
    Oui mais pour les environnements de PROD compatible SQL Server 2000 c'est mort... alors que le TOP fonctionne.
    Arrêtez de poster des liens! Expliquez! (ça évite les erreur HTTP 404)

    L'homme est plus fort que la machine... ne renoncez jamais


  20. #20
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Il existe d'autres possibilité que le TOP pour ce faire et ces possibilités là respectent les opérations ensemblistes.
    Par exemple une auto non équi jointure avec comptage.

    Le problème vient du fait que la plupart des dévelopeurs sont ignare en matière de requêtes SQL !

    Donc à de très rares exceptions près, le TOP ne sert qu'à générer des requêtes souvent fausses !

    A +

    PS : pour l'exception, voir l'étude que j'ai faite sur la médiane et qui figure sur mon site corporate d'entreprise :
    http://www.sqlspot.com/Calcul-de-la-mediane-en-SQL.html
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/09/2011, 20h26
  2. Les audits avec SQL Server 2008
    Par mikedavem dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 21/06/2010, 07h40
  3. SQL SERVER 2008 et les pages en ASP
    Par aya02 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 18/05/2010, 18h27
  4. Réponses: 0
    Dernier message: 30/09/2009, 18h13
  5. Réponses: 0
    Dernier message: 30/09/2009, 18h13

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