Comment peut-on ajouter des contraintes de tous types à une table qui existe déjà , mais dont on a modifié la structure ou tout simplement oublié d’ajouter la contrainte en même temps que la colonne ?
Archives pour la catégorie T-SQL
Une fonction d’extraction des nombres contenus dans une chaîne de caractères : les fonctions ISNUMERIC() et ASCII()
Voici une petite fonction qui vous permettra d’extraire les nombres contenus dans une chaîne de caractères, et de les retourner comme un entier…
Stocker simplement tout types de fichiers dans une table en utilisant le type de données VARBINARY et les BLOBs
Voici comment copier le contenu d’un fichier contenu sur un disque dur pour le stocker dans une table, Ã l’aide de la commande OPENROWSET et de son option BULK …
Exporter le code de vues, procédures stockées, triggers, fonctions SQL vers un fichier
Pour effectuer une revue de code ou pour gérer des versions de code en phase de développement, il peut être intéressant d’exporter les codes des modules SQL vers un fichier.
Voyons comment réaliser cela, à l’aide de l’utilitaire en ligne de commande BCP …
Rechercher une chaîne de caractère dans le code des modules SQL sous SQL Server 2005 et 2008
Il arrive parfois de vouloir chercher un bout de code dans toutes les procédures stockées d’une base de données, comme par exemple le nom d’une colonne.
Voyons comment réaliser cela avec une simple requête …
Une seule instruction DROP pour supprimer plusieurs objets de base de données de même type
Voici comment, dans la même instruction, supprimer plusieurs procédures stockées ou tables …
Concaténer les valeurs d’une colonne dans une variable
Il est souvent demandé s’il est possible de concaténer les valeurs d’une colonne dans une variable, éventuellement en les séparant avec un symbole de ponctuation.
Voici comment faire, sans curseur ni expression de table commune …
Lire la suite
Comparaison des temps d’exécution entre un curseur et une requête SQL
Je vois souvent sur le forum SQL Server l’utilisation de curseurs alors qu’une vraie requête SQL pourrait le remplacer.
Outre le fait que les curseurs datent de COBOL (1956 …), et que leur spécification en COBOL et T-SQL est similaire à s’y méprendre, comparons donc les temps d’exécution entre un curseur et une requête sur un traitement très simple …
Aggréger des données non numériques d’une entité par une liste de valeurs
Il est souvent demandé sur le forum comment on peut créer une liste de valeurs stockées dans une colonne en une liste.
Cela est en effet souvent demandé par le client pour des rapports, mais il n’est pas évident de prime abord de fournir un tel résultat, puisqu’il est anti-relationnel !
Prenons pour exemple des adhérents à plusieurs clubs :
NomContact NomClub --------------- ------------ BipBip SQLServer BipBip Oracle BipBip PostGreSQL Coyotte MySQL Coyotte FireBird Titi Sybase Sylvestre DB2 Sylvestre SQLite Bugs Bunny SQLServer Bugs Bunny PostGreSQL Daffy Duck FireBird Daffy Duck DB2 Sam Le Pirate SQLite
Le résultat recherché se présente sous la forme :
NomContact ListeClub --------------- ----------------------------- Titi Sybase Sam Le Pirate SQLite Daffy Duck FireBird, DB2 Bugs Bunny SQLServer, PostGreSQL Sylvestre DB2, SQLite Coyotte MySQL, FireBird BipBip SQLServer, Oracle, PostGreSQL
Ce qu’il n’est pas possible d’utiliser dans les fonctions T-SQL, et pourquoi
Voici la liste des instructions qu’il n’est pas possible d’utiliser dans un fonction définie par l’utilisateur (UDF) sous SQL Server