Articles high-tech taggés "sql"

Fil des billets - Fil des commentaires

SSIS - comment éditer ou modifier un fichier de configuration .DtsConfig facilement ?

Comment éditer un fichier de configuration SSIS facilement .dtsconfig ? Astuce SSIS. L'édition des fichiers de configurations SSIS (c'est à dire un fichier .dtsConfig) est relativement difficile en raison du format du fichier.
En effet lorsque nous ouvrons un fichier de configuration avec un éditeur de texte classique (le bloc-notes de Windows, Notepad++ ou Application MFC Wordpad pour ne citer qu'eux) nous retrouvons tous les éléments qui composent le fichier XML sur une seule et unique ligne de texte, c'est un peu embêtant !!!

Les fichiers de configuration sont la base de la gestion de package SSIS sous SQL Server , et permettent de valoriser des variables SSIS de façon dynamique. Ces astuces SSIS d'édition de texte ne s' applique pas seulement aux fichiers de configuration SSIS bien sur mais à tout fichier XML qui n'aurait pas les retours à la ligne. Voici 2 solutions ou astuces pour mettre à plat un fichier de configuration XML SSIS (extension .dtsconfig) ou n'importe quel fichier XML d'ailleurs ! soit avec...

Lire la suite

Comment faire un insert INSERT OR UPDATE sous SQL SERVER

Pour effectuer un insert or update sans obtenir un message d'erreur car la ligne SQL existe déjà. L' erreur rencontrée est la suivante : Msg 2627, Level 14, State 1, Line 1 Violation de la contrainte PRIMARY KEY * . Impossible d'insérer une clé en double dans l'objet *. L'instruction a été arrêtée.

Il existe 2 façons de faire assez simples : Première solution pour Insert or UPdate sous SQL Server 2005 IF EXISTS (SELECT * FROM TABLE WHERE KEY = @KEY) BEGIN UPDATE TABLE SET FIELD1 = 'VALUE1', FIELD2 = 'VALUE2', ... WHERE KEY = @KEY END ELSE BEGIN INSERT TABLE (KEY, FIELD1,FIELD2, ... ) VALUES ('KEY','VALUE1','VALUE2', ... ) END Deuxième solution pour Insert or UPdate sous SQL Server 2005 UPDATE TABLE SET FIELD1 = 'VALUE1', FIELD2 = 'VALUE2', ... WHERE KEY = @KEY IF @@ROWCOUNT = 0 BEGIN...

Lire la suite

Comment estimer la taille exacte d'une base de données SQL Server ?

Une problématique dans la construction d'une base de données relationnelle, et encore plus dans le cas d'une base de données décisionnelle, est la volumétrie inconnue et l'espace disque à prévoir sur le système d'exploitation hébergeant le SGBD.

Pour construire et estimer la taille qu'occupera la taille de l'entrepôt de données sous SQL Server, il faut connaître la structure de la base de données en détail, c'est à dire les types de données et leur longueur : Par exemple les types VARCHAR(n) et NVARCHAR(n) (chaîne de caractère Unicode) : n étant la longueur de la chaîne de caractère comprise entre 1 et 4000. La taille de stockage sera le double de n. La procédure à suivre et tous les calculs à effectuer sont disponibles à cette page :...

Lire la suite

Comment compter le nombre de lignes dans un flux de données SSIS ?

Pour permettre de faire des statistiques sur les traitements SSIS de chargement d'un entrepôt de données (datawarehouse) il est trés utile de savoir combien de lignes sont insérées dans telle ou telle table, combien de lignes ont généré des erreurs, ou encore combien de ligne ont été mises à jour ou insérées. Pour ce faire de nombreuses façon sont disponibles avec des insertions dans des tables d'audit ou des tables de suivi des traitements.

Problématique Comment faire pour compter toutes les lignes à différents endroits dans le flux de données simplement et exploiter ces statistiques dans des flux de contrôle ? En d'autres termes, comment superviser le lancement des packages sous Microsoft SQL Server Integration Services de façon quantitative ? Nous pouvons utiliser le composant SSIS (présent dans la version 2005 et 2008) pour compter toutes les lignes de chaque destination OLE DB par exemple. Cet exemple utilise est fait avec la...

Lire la suite

Comment effectuer un update à partir du même champs d'une autre ligne dans la même table en SQL Server ?

Pour mettre à jour un champs existant depuis un autre champs de la même table mais qui ne est identifié par une autre clef, une simple requête du type UPDATE MaTable SET MonChamps1 = 'Valeur' WHERE MonChampsClef = 'Ma clef' ne suffit pas. C'est à dire que pour mettre à jour le champs en SQL, il faut identifier le tuple contenant l'autre valeur et récupérer la valeur. Cet article montre comment mettre à jour un champs à partir de la valeur contenue dans une autre ligne, cette ligne étant identifiée par une clef composée.

Pour récupérer la valeur du champs nous pouvons utiliser une requête de ce type (testée sous SQL Server 2008) : UPDATE MaTable SET MonChamps = M2.MonChamps FROM MaTable , MaTable M2 WHERE MaTable.MonChampsClef = 'Une Clef' AND M2.MonChampsClef = 'Une autre Clef' AND MaTable.MonChampsDeJointure1 = M2.MonChampsDeJointure1 AND MaTable.MonChampsDeJointure2 = M2.MonChampsDeJointure2 Ainsi les alias de table ne sont pas acceptés dans la première déclaration de la table juste après le UPDATE ni dans la...

Lire la suite

Comment exécuter une chaîne de caractères contenant une variable écrite en dur en T-SQL avec EXEC

Vous souhaitez exécuter une chaine du type : @SQL = 'SELECT CHAMPS1, CHAMPS2 FROM MA_TABLE WHERE CHAMPS1 = @VARIABLE' EXEC @SQL et vous obtenez un message d'erreur comme ceci : Must declare the scalar variable "@..."

Pour contourner ce problème il faut utiliser la procédure T-SQL EXEC sp_executesql. Voici un exemple complet d'exécution d'une chaîne T-SQL avec la commande spéciale EXEC sp_executesql -- Création de la table pour l'exemple CREATE TABLE MA_TABLE ( CHAMPS1 NVARCHAR(100), CHAMPS2 NVARCHAR(100) ); -- Déclaration des variables utilisées par la procédure DECLARE @COMPTEUR INT; -- Compteur DECLARE @VARIABLE NVARCHAR(20); -- Variable mise à jour dans notre boucle à chaque passage DECLARE @VARIABLE_CHAR...

Lire la suite

- page 1 de 2

Suivez le blog high-tech

  • Logo Twitter
  • Logo Facebook
  • Logo Youtube
  • Logo Fil RSS