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 :

Probleme script creation table


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut Probleme script creation table
    Bonjour,

    J'ai un problème lorsque j'importe des tables et données depuis MySQL.
    J ai créé un lot DTS et j ai mis la requête suivante dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    USE MA_BASE;
    DROP TABLE IF EXISTS `ma_table`;
    CREATE TABLE IF NOT EXISTS `ma_table` (
    ...
    );
    "MS SQL Server Entreprise manager" me dit que l'erreur vient du IF.
    Pourtant c'est le code créé par phpmyadmin lors de l'extraction, de plus celui-ci fonctionne dans phpmyadmin donc ça devrait etre bon ?

    Y a t il une autre syntaxe à utiliser ?

    Cordialement

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Comme tu dois le savoir, SQL Server et MySQL sont des produits différents, et leur syntaxe diffère également. "IF NOT EXISTS" dans les instructions de création de table n'est pas supporté en SQL Server, il faut l'enlever.

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    Je suppose qu'il en va de meme pour le IF EXISTS.

    Si la table est déjà créée, il va la dropper et la recréer ?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 901
    Points : 53 143
    Points
    53 143
    Billets dans le blog
    6
    Par défaut
    Non SQL server ne détruira pas une table implicitement.

    Pour ce faire utilisez la syntaxe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    IF EXISTS(SELECT *
            FROM INFORMATION_SCHEM.TABLES
            WHERE TABLE_SCHEMA = 'monSchema'
            AND TABLE_NAME = 'maTable')
       DROP TABLE MonSchema.MaTable
    CREATE TABLE MonSchema.MaTable
    (...)
    A +

  5. #5
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    merci bien ça marche nikel.

    Maintenant j'ai un autre problème, dans ma table SQL il y a un champ en "int" en auto_increment, je l'ai transformer en integer et suppriemr l'auto_incrémente (j en ai pas besoin), et quand j'exécute la requête dans "SQL Query Analyser", j'ai ce message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Server: Msg 2716, Level 16, State 1, Line 3
    Column or parameter #1: Cannot specify a column width on data type int.
    pour ce champ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id_employe integer(11) NOT NULL,
    Pourtant lorsque j'importe les tables via Entreprise manager, le champ "int" ne pose pas de probleme.

  6. #6
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    C est bon,

    En fait j'ai créé un script de création de la table avec "enterprise manager" après l'avoir importé manuellement.

    résolu

    Cordialement

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

Discussions similaires

  1. aide script creation table SQL et PL SQL
    Par julien0709 dans le forum PL/SQL
    Réponses: 4
    Dernier message: 22/03/2010, 10h38
  2. [AC-2007] Probleme import/creation table via ODBC/VBA
    Par altheorijinal dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 15/03/2010, 10h45
  3. [MySQL] probleme script recherche dans une table
    Par rhaamo dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 13/02/2007, 14h25
  4. P'tit probleme de creation de formulaire dans mon script
    Par Jim_Nastiq dans le forum Langage
    Réponses: 2
    Dernier message: 28/04/2006, 16h40
  5. probleme de creation de table
    Par donny dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 30/05/2005, 08h54

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