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 :

[Stored Procedure]Only constants, expressions, or variables


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 63
    Points : 40
    Points
    40
    Par défaut [Stored Procedure]Only constants, expressions, or variables
    Donc voila mon pb. J'ai une procedure stokee qui est la suivante :
    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
     
    CREATE PROCEDURE dbo.W90Pisces_InsertCountry
    @countryName as varchar(255), 
    @zoneID as int, 
    @currencyKey as INT, 
    @UpdatedBy as varchar(50), 
    @InsertListKey as int,
    @sessionID as varchar(100)
     
    AS
     
    declare @CountryKey int,
    @GroupId as int,
    @ClientID as int,  
    @ClientDb as varchar(50),
    @SQL as varchar(4000)	,
    @Insert as varchar(4000)
     
    SELECT @GroupID = UserGroup, @ClientID = ClientID, @ClientDb=ClientDb + '.dbo.'  FROM ActiveUsers WHERE SessionID = @SessionID
     
     
    SET @Insert = ' INSERT INTO ' +@ClientDb + 'Country(CountryName, ZoneKey, CurrencyKey, UpdatedBy, ClientID, securityLevel) VALUES ( '+ CONVERT(varchar(255), @countryName) +' , ' + CONVERT(varchar(2), @zoneID) + ' ,  ' + CONVERT(varchar(3), @CurrencyKey) + ', ' + CONVERT(varchar(50), @UpdatedBy) + ', ' + CONVERT(varchar(3), @ClientID) + ', '+ CONVERT(Varchar(1), '0') +')'
    exec(@Insert)
     
    GO
    mais quand je l'execute, je me retrouve avec l'erreur suivante :

    Citation Envoyé par error
    The name 'Country' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted.
    a prioris ce genre d'erreur arrive lorsqu'on fait de la double Quotation, mais la, je n'ai que des simple quote...
    de plus "Country" est le nom de ma table, pas d'une colonne.. je ne comprends pas trop en fait

    en vous remerciant
    Pourquoi un PC fait-il toujours ce qu'on lui demande, mais alors jamais ce qu'on veut...

  2. #2
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Slt,

    Juste avant le exec(@Insert) fait un print @insert histoire de verifier que ta requete est bien construite !

    a+
    One ring to rule them all,
    One ring to find them,
    One ring to bring them all
    And in the darkness bind them.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    ben en fait, ma comande est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO CREDOm_Template.dbo.Country(CountryName, ZoneKey, CurrencyKey, UpdatedBy, ClientID, securityLevel) VALUES ( myCountry , 2 ,  110, Pisces Import, 7, 0)
    ce qui veux dire qu'il me manque les quotes pour les valeurs que je veux inserer.. mais comment je les rajotue...???
    Pourquoi un PC fait-il toujours ce qu'on lui demande, mais alors jamais ce qu'on veut...

  4. #4
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    tu rajoutes des + ''' + de chaque cote de tes champs dans la construction de la chaine sql.
    One ring to rule them all,
    One ring to find them,
    One ring to bring them all
    And in the darkness bind them.

  5. #5
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    tu veux dire que a la place de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SET @Insert = ' INSERT INTO ' +@ClientDb + 'Country(CountryName, ZoneKey, CurrencyKey, UpdatedBy, ClientID, securityLevel) VALUES ( '+ CONVERT(varchar(255), @countryName) +' )'
    faudrai mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SET @Insert = ' INSERT INTO ' +@ClientDb + 'Country(CountryName, ZoneKey, CurrencyKey, UpdatedBy, ClientID, securityLevel) VALUES ( '+ "CONVERT(varchar(255), @countryName)" +' )'
    ??
    Pourquoi un PC fait-il toujours ce qu'on lui demande, mais alors jamais ce qu'on veut...

  6. #6
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET @Insert = ' INSERT INTO ' +@ClientDb + 'Country(CountryName, ZoneKey, CurrencyKey, UpdatedBy, ClientID, securityLevel) VALUES ( ' + ''' + CONVERT(varchar(255), @countryName) + ''' + ' )'
    One ring to rule them all,
    One ring to find them,
    One ring to bring them all
    And in the darkness bind them.

  7. #7
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    humm.... pas con... tiens.. c pas con ca...! en te remerkinat...
    je sias pas pourquoi, mais je le sens bien ca..!
    Pourquoi un PC fait-il toujours ce qu'on lui demande, mais alors jamais ce qu'on veut...

  8. #8
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    ben ouias, mais nan, ca marche pas, si je met trois fois ', yen a un qui ouvre , un qui ferme, et un qui reouvre.. donc, marche pas... et merde
    Pourquoi un PC fait-il toujours ce qu'on lui demande, mais alors jamais ce qu'on veut...

  9. #9
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    autant pour moi m'a gourre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    declare @insert varchar(1000)
    declare @ClientDb varchar(10)
    declare @countryName varchar(10)
     
    set @countryName = 'France'
    set @ClientDb = 'TeST'
     
     
    SET @Insert = ' INSERT INTO ' +@ClientDb + 'Country(CountryName, ZoneKey, CurrencyKey, UpdatedBy, ClientID, securityLevel) VALUES (''' + CONVERT(varchar(255), @countryName) + ''' )' 
     
    select @insert
    a+
    One ring to rule them all,
    One ring to find them,
    One ring to bring them all
    And in the darkness bind them.

  10. #10
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    ouias, merci, j'ai trouve ya 2 min... et c'est bien ca...

    en te remerkiant pour ton aide
    Pourquoi un PC fait-il toujours ce qu'on lui demande, mais alors jamais ce qu'on veut...

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

Discussions similaires

  1. [Oracle] Stored Procedures Variable
    Par elnfrancois dans le forum SQL
    Réponses: 2
    Dernier message: 11/09/2007, 16h34
  2. [SQL] stored procedure
    Par gregorian dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/11/2005, 14h08
  3. [Debutant][Store procedure][performance] plan d'acces
    Par Carmen dans le forum Débuter
    Réponses: 2
    Dernier message: 11/01/2005, 09h20
  4. [langage] Expressions régulières : variables $&, $' et $`
    Par Christophe Brun dans le forum Langage
    Réponses: 3
    Dernier message: 24/11/2004, 19h27
  5. Apropos des Transactions au sein d'un Stored Procedure
    Par Sarbacane dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 16/11/2004, 08h21

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