cette commande sql serveur non transact sql, mais reconnu par le manager et sqlcmd et osql offre des possibilités alors insoupconnées en SQL. Attention! Toad ne l’accepte pas!
lien msdn : http://msdn2.microsoft.com/en-us/library/ms188037.aspx
cette commande sql serveur non transact sql, mais reconnu par le manager et sqlcmd et osql offre des possibilités alors insoupconnées en SQL. Attention! Toad ne l’accepte pas!
lien msdn : http://msdn2.microsoft.com/en-us/library/ms188037.aspx
En SQL ANSI, il est connu qu’une vue ne doit jamais être trié. On n’utilise donc jamais de ORDER BY dans une vue.
J’avoue que j’ai essayé de trouver une bon raison à cela et je l’ai finalement trouvé…
Comme vous le savez, une vue n’est qu’un enregistrement de requête, elle n’a pas d’existence physique comme une table à part les vues matérialisées mais c’est un autre problème!
Imaginez le scénario suivant :
Vous créez sur sql serveur une vue avec un order by. SQL Serveur 2000 ne posera aucune question et conservera le tri en réserve comme vous le souhaitez.
CREATE VIEW MAVUE AS SELECT NOM,PRENOM FROM FAMILLE ORDER BY NOM,PRENOM;
Jérome, votre collègue de toujours à besoin de cette vue mais lui, il veut trié par PRENOM,NOM…il écrit donc sa requète :
SELECT * FROM MAVUE ORDER BY PRENOM,NOM;
Jérome a le droit d’écrire cela.
Maintenant, Qu’avez vous demander à SQL SERVEUR 2000 ?
Il doit trier par NOM,PRENOM puis par PRENOM,NOM dans la même requête, avouez que c’est fort en chocolat de demander cela.
Voilà , pour moi, la raison pratique pour laquelle on ne doit jamais écrire un order by dans une vue. Parce qu’il y a aura 10 utilisateurs différents de la vue et qu’aucun d’eux n’aura les mêmes besoins. Alors même si sql serveur 2000 autorise le order by dans une vue, ne l’utilisez jamais dans la vue mais en dehors, au plus prés du besoin!
Comme vous le savez déjà , depuis SQL Server 2005, Microsoft a mis en place l’ utilisation du langage .NET dans SQL Server. Etudions par un simple exemple les performances ? Quand devrons-nous utiliser quand même ce SQLCLR ?
Chaque développeur confirmé ou DBA connaît la définition et l’ usage du SQL Dynamique mais une personne qui découvre les bases de données ne saura pas nécessairement ce que signifie ce terme surtout que l’ aide en ligne de SQL Server ne fournit pas de définition du concept et que très peu d’ auteurs ont trouvé utile de préciser ce concept, spécifiquement pour SQL Server, sur le web.
( Première Partie ) Problème N°2 Le publipostage.
J’avais résolu ce problème d’une façon élégante à l’aide des CTE sous SQL Serveur 2005.
Aujourd’hui, je vous livre la solution classique, pour sql serveur 2000.
Lire la suite
Un exercice assez simple de sql pour sql serveur 2000.
Enonce :Problème n° 4 – les chambres libres
Solution : Lire la suite
Ce matin, j’ étais en discussion avec un prospect, et il me pose la question suivante : savez-vous comment définir un paramètre optionnel pour une SP ?
Ma réponse à froid : tous les paramètres sont obligatoires en .Net mais je place un IF dans la procédure stockée afin que si la valeur soit égale à 0 on n’ effectue une requête sans le paramètre.
En fait, il est parfaitement possible d’ avoir un paramètre optionnel, c’ est à dire que l’ on ne déclare pas dans le code ASP.NET. Il suffit d’ affecter une valeur par défaut au paramètre de la procédure par exemple
CREATE PROCEDURE ListeSalarie
@Age int = 18
AS
SELECT Nom,Matricule FROM Salarie WHERE Age>@Age;
Par cette procédure, vous pouvez appeler la procédure ListeSalarie sans paramètre pour avoir la liste des salarie supérieur à l’ age légal de la majorité.
Par cette procédure, vous pouvez appeler la procédure ListeSalarie avec un paramétre @age pour avoir la liste des salarie supérieur à cette @age donné.
Comme la date des résultats est dépassée et que je pense que le concours reste à titre pédagogique, je me permet de publier quelques résultats qui peuvent vous instruire.
Aujourd’hui, utilisation des CTE pour multiplie une ligne.
( Première Partie ) Problème N°2 Le publipostage. Pour info, j’ai cherche un moment comment multiplier des données avant de comprendre que c’était les CTE la solution.
Réponse :
Lire la suite
Concours : http://sqlpro.developpez.com/Exercices/Index.html
Enoncé : http://sqlpro.developpez.com/Exercices/SQL_AZ_P4.html
Solution : voir ci dessous.
Indice : il s’agit d’un nouveau problème à base de CTE.
Lire la suite
Je vous encourage à répondre aux nombreux problèmes proposés par sql pro en sql : ici
Aujourd’hui, je vous propose de résoudre un problème par application des fonctions de fenêtrage et de ranking, nouvelle fonctionnalité de sql serveur 2005, dans le but de numéroter des lignes lors d’un SELECT.
Problème : http://sqlpro.developpez.com/Exercices/SQL_AZ_P1.html – Problème n° 7 – le comptage.
Solution :
Lire la suite
© 2000-2020 - www.developpez.com
Partenaire : Hébergement Web