Précédent   Forum du club des développeurs et IT Pro > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 28/06/2007, 08h58   #1
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 080
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 080
Points : 21 678
Points : 21 678
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 09h30   #2
Ekimasu
En attente de confirmation mail
 
Inscription : octobre 2002
Messages : 347
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 347
Points : 94
Points : 94
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 ?
Ekimasu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 17h32   #3
Bousseliou
Invité de passage
 
Inscription : juin 2005
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 2
Points : 2
Points : 2
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
Bousseliou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2007, 07h57   #4
Yann
Nouveau Membre du Club
 
Inscription : mars 2002
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 54
Points : 37
Points : 37
Envoyer un message via MSN à Yann
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.
Yann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/07/2007, 10h33   #5
The eye
Membre éclairé
 
Inscription : décembre 2006
Messages : 480
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : décembre 2006
Messages : 480
Points : 303
Points : 303
Envoyer un message via MSN à The eye
Le point 8) manquait cruellement à SQL Server! Content de voir qu'ils comblent cette lacune!
The eye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2007, 22h25   #6
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 080
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 080
Points : 21 678
Points : 21 678
Pour le SIG, c'est dans la norme SQL...

Citation:
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 12h40   #7
Danny Blue
Futur Membre du Club
 
Webmaster
Inscription : mars 2006
Messages : 88
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : mars 2006
Messages : 88
Points : 18
Points : 18
La clause LIMIT sera-t-elle ajoutée cette fois-ci ou non ?
Danny Blue est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 14h11   #8
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 080
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 080
Points : 21 678
Points : 21 678
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2007, 19h34   #9
Danny Blue
Futur Membre du Club
 
Webmaster
Inscription : mars 2006
Messages : 88
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : mars 2006
Messages : 88
Points : 18
Points : 18
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.
Danny Blue est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2007, 15h45   #10
WOLO Laurent
Rédacteur/Modérateur

 
Avatar de WOLO Laurent
 
Homme Laurent WOLO
Architecte de base de données
Inscription : mars 2003
Messages : 2 698
Détails du profil
Informations personnelles :
Nom : Homme Laurent WOLO
Âge : 36
Localisation : Congo-Brazzaville

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

Informations forums :
Inscription : mars 2003
Messages : 2 698
Points : 4 070
Points : 4 070
Envoyer un message via Yahoo à WOLO Laurent
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 :
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 !
WOLO Laurent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 22h22   #11
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 080
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 080
Points : 21 678
Points : 21 678
A propos de LIMIT :
Citation:
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 :
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 22h05   #12
voyageur
Membre régulier
 
Inscription : avril 2002
Messages : 182
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 182
Points : 76
Points : 76
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 ?
voyageur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 14h16   #13
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 080
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 080
Points : 21 678
Points : 21 678
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 23h49   #14
KibitO
Membre expérimenté
 
Avatar de KibitO
 
Chef de projet MOA
Inscription : septembre 2004
Messages : 541
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projet MOA

Informations forums :
Inscription : septembre 2004
Messages : 541
Points : 554
Points : 554
Je suis bluffé par cette nouvelle version
KibitO est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 11h58   #15
CUCARACHA
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
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
  Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 09h31   #16
KibitO
Membre expérimenté
 
Avatar de KibitO
 
Chef de projet MOA
Inscription : septembre 2004
Messages : 541
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projet MOA

Informations forums :
Inscription : septembre 2004
Messages : 541
Points : 554
Points : 554
Peut-être y a t-il un 5e CD, comme pour les versions SBS Premium..
KibitO est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 19h51   #17
The eye
Membre éclairé
 
Inscription : décembre 2006
Messages : 480
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : décembre 2006
Messages : 480
Points : 303
Points : 303
Envoyer un message via MSN à The eye
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...
The eye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2007, 12h04   #18
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 080
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 080
Points : 21 678
Points : 21 678
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2008, 12h36   #19
The eye
Membre éclairé
 
Inscription : décembre 2006
Messages : 480
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : décembre 2006
Messages : 480
Points : 303
Points : 303
Envoyer un message via MSN à The eye
Oui mais pour les environnements de PROD compatible SQL Server 2000 c'est mort... alors que le TOP fonctionne.
The eye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2008, 10h38   #20
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 080
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 080
Points : 21 678
Points : 21 678
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h45.


 
 
 
 
Partenaires

Hébergement Web