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 :

Espaces dans le nom de la base


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 25
    Points
    25
    Par défaut Espaces dans le nom de la base
    Bonjour,

    j'essaye d'exécuter des requêtes sql sur une base dont le nom contient des espaces genre ( ma base_de / donné )

    je ne suis pas l'auteur de cette base :/.


    Example avec []:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="SELECT * FROM [dbo.La base qui_pose / problème ] where [un champs interne] = '15000'";
    donne l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Nom d'objet 'dbo.La base qui_pose / problème' non valide., SQL state S0002 in SQLExecDirect
    Example avec ` ( alt gr +7 ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="SELECT * FROM `dbo.La base qui_pose / problème` where [un champs interne] = '15000'";
    donne l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Syntaxe incorrecte vers '`'., SQL state 37000 in SQLExecDirect
    Example sans rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="SELECT * FROM dbo.La base qui_pose / problème where [un champs interne] = '15000'";
    donne l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Syntaxe incorrecte vers 'qui_pose'., SQL state 37000 in SQLExecDirect in
    je suis perdu

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Transformez par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="SELECT * FROM [dbo].[La base qui_pose / problème ] WHERE [un champs interne] = '15000'";
    - dbo : le nom du schéma de la base de données : une base de données peut contenir plusieurs schémas (par défaut sous SQL Server : dbo, INFORMATION_SCHEMA et sys), qui sont des regroupements logiques d'objets (tables, vues, procédures stockées, ...)

    - [La base qui_pose / problème ] : il s'agit en fait de la table que vous souhaitez interroger

    - [un champs interne] : une base de données relationnelle SQL n'a pas de champs, ni de tableau, ni d'enregistrement

    Vous avez gagné le droit de pestiférer après l'auteur de la base de données

    @++

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 25
    Points
    25
    Par défaut


    2 jours de recherche

    rep+ , merci beaucoup !

  4. #4
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    Bonjour,
    Vous pouvez utiliser les synonymes si l'espace est dans le nom de la table
    Blog Perso | Kankuru (logiciel gratuit pour SQL Server)

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Avec plaisir

    @++

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    je me permet d'ajouter une question :

    cette technique marche sur tout les noms de bases sauf celles avec des accents , genre [dbo].[C_Base avec des_és]

    qui me dit le fameux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Nom d'objet 'dbo.C_Base avec des_és' non valide., SQL state S0002 in SQLExecDirect in
    le é est du au faire que ma base est en iso-8859-1 alors que sql est en utf-8 , mais je ne pense pas que c'est le problème .

    ps : le créateur de cette base et moi

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par darkelend Voir le message
    Bonjour,
    Vous pouvez utiliser les synonymes si l'espace est dans le nom de la table
    peut être cela me sera utile pour les bases avec l'accent ?

  8. #8
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Encore faut-il parvenir à créer le synonyme, que vous pouvez ensuite référencer comme n'importe quelle table ou vue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE SYNONYM mon_synonyme FOR dbo.monObjet
    @++

  9. #9
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    Effectivement, ça ne solutionne pas le problème de nommage mais ca évite de se creuser la tête à chaque fois. Cela dit, je n'apprécie pas trop les synonymes pour des questions de lisibilité. Si tu peux, renomme tes objets correctement
    Blog Perso | Kankuru (logiciel gratuit pour SQL Server)

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Encore faut-il parvenir à créer le synonyme, que vous pouvez ensuite référencer comme n'importe quelle table ou vue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE SYNONYM mon_synonyme FOR dbo.monObjet
    @++
    Effectivement

    bon ben , je vais poster une solution ici si je la trouve . Ce qui est drôle en info , c'est que c'est toujours le champs le plus important qui bug

  11. #11
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Ce qui est drôle en info , c'est que c'est toujours le champs le plus important qui bug
    C'est surtout que la personne qui a créé la base de données, qui est une base de données relationnelle SQL, l'a fait sans connaissance de cause.
    Et la victime, c'est vous ...

    @++

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/07/2007, 19h22
  2. [bat]espace dans le nom d'un fichier
    Par norac dans le forum Windows
    Réponses: 8
    Dernier message: 29/06/2006, 10h15
  3. Smbclient et espace dans les noms
    Par jean-jacques varvenne dans le forum Réseau
    Réponses: 4
    Dernier message: 30/11/2005, 18h29
  4. download fichier avec espace dans le nom
    Par cb68 dans le forum Langage
    Réponses: 8
    Dernier message: 23/11/2005, 10h00
  5. Réponses: 4
    Dernier message: 29/10/2005, 18h36

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