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 :

faite moi savoir


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2009
    Messages : 65
    Points : 57
    Points
    57
    Par défaut faite moi savoir
    Bonjour mes amis;
    1- j'aimerais savoir la relation entre "CAST" et "Substring" ?
    2- il veut dire quoi ce msg d'erreur "Violation de la contrainte PRIMARY KEY 'PK_FACTURE'. Impossible d'insérer une clé en double dans l'objet 'dbo.Facture'".
    3- la meilleur façon de concaténer des variables de différents types comme des chaines de caractère avec des integer.
    4- une notion sur les curseurs.
    Cordialement

  2. #2
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Bonjour,

    1- CAST est une fonction qui permet de convertir une donnée d'un type à une autre (voir la MSDN pour plus d'infos : http://msdn.microsoft.com/en-us/libr...SQL.80%29.aspx )

    SUBSTRING est une fonction qui permet d'extraire une sous-chaîne d'une chaîne de caractères. (voir la MSDN pour plus d'infos : http://msdn.microsoft.com/en-us/libr...SQL.80%29.aspx )

    2- Ce message d'erreur signifie qu'il n'est pas possible d'insérer les données dans la table dbo.Facture car la clef primaire des enregistrements que vous voulez ajouter est déjà présente dans cette même table. Dans ce cas, vous pouvez soit faire un UPDATE sur la table pour modifier les données qui correspondent à cette clef primaire soit modifier votre clef primaire.

    3- Je crois que lorsqu'on concatène des chaînes de caractères avec des integer, il est faut rajouter une conversion explicite grâce à CAST ou CONVERT.
    Pour concaténer deux String, vous pouvez utiliser l'opérateur "+". Vous trouverez plus d'infos dans la MSDN ici : http://msdn.microsoft.com/en-us/libr...SQL.80%29.aspx

    4- Un curseur permet de traiter des tuples dans une procédure. Vous trouverez plus d'infos dans la MSDN ici : http://msdn.microsoft.com/en-us/libr...SQL.80%29.aspx

    Cordialement,

    Arkhena
    A bove ante, ab asino retro, a stulto undique caveto

  3. #3
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    1- j'aimerais savoir la relation entre "CAST" et "Substring" ?
    Aucune. La fonction CAST sert à caster un type de données en un autre.
    La fonction SUBSTRING permet d'extraire une sous chaîne de caractères d'une autre chaîne de caractères.

    2- il veut dire quoi ce msg d'erreur "Violation de la contrainte PRIMARY KEY 'PK_FACTURE'. Impossible d'insérer une clé en double dans l'objet 'dbo.Facture'".
    Chaque ligne de votre table dbo.Facture est unique et peut être identifié par votre clé primaire PK_FACTURE. Je suppose fortement que clé primaire ici est le no de facture. Vous ne pouvez donc pas entrer 2 fois un même numéro de facture

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    No facture         |  No client
    ------------------------------
    1                         105
    1                         106
    ne fonctionnera pas

    3- la meilleur façon de concaténer des variables de différents types comme des chaines de caractère avec des integer.
    Vous pouvez utiliser CAST justement dans ce cas de figure

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DECLARE @entier INT
    DECLARE @texte VARCHAR(10)
     
    SET @texte = 'TEST'
    SET @entier = 230
     
    SELECT @texte + CAST(@entier AS CHAR(3))
    4- une notion sur les curseurs.
    Un curseur permet un traitement itératif (SQL Procédural).
    Evitez de passer par les curseurs lorsque cela est possible car ceci est contre performant. (La plupart du temps les curseurs peuvent être remplacés par du code ensembliste)

    Un petit exemple de curseur
    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
    DECLARE @name_database SYSNAME;
     
    -- Déclaration et création du curseur
    DECLARE C CURSOR FOR
    SELECT name FROM sys.databases;
     
    -- Ouverture du curseur
    OPEN C;
    -- On associe le 1er enregistrement du curseur dans la variable
    FETCH NEXT FROM C INTO @name_database
     
    -- Parcours du curseur 
    WHILE @@FETCH_STATUS = 0
    BEGIN
    	-- Traitement
    	-- Ici on affiche simple le nom de la base de données
    	PRINT 'Base de données : ' + @name_database
     
                 -- Traitement pour chaque base de données ici
     
    	-- On passe à l'enregistrement suivant
    	FETCH NEXT FROM C INTO @name_database
    END
     
    -- Fermeture du curseur
    CLOSE C;
    -- suppression de la référence du curseur et libération des structures de données alloués
    DEALLOCATE C;
    ++

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2009
    Messages : 65
    Points : 57
    Points
    57
    Par défaut
    Salut;
    Merci beaucoup Arkhena et mikedavem vous m'avais vraiment aider,
    Consternant le msg d'erreur, vraiment j'ai fait comme il ma dit Arkhena, c'est à dire j'ai fait un UPDATE sur la table, et je n'es jamais compris la Définition de CAST et SUBSTRING comme il ma fait comprendre mikedavem, c'est vraiment géniale de trouver des profs comme vous deux Merci et encore Merci.
    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Fait]Comment savoir si les contrôles ont été remplies
    Par Invité dans le forum Contribuez
    Réponses: 0
    Dernier message: 12/09/2007, 12h02
  2. Faites-moi un la
    Par prgasp77 dans le forum Enigmes
    Réponses: 9
    Dernier message: 12/03/2007, 16h35

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