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

Administration SQL Server Discussion :

Problème scriptella passage Mysql à SQLServer


Sujet :

Administration SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 35
    Points : 20
    Points
    20
    Par défaut Problème scriptella passage Mysql à SQLServer
    Bonjour,
    J'ai un script de rempliassage d'une base de donnée qui fonctionnait très bien avec Mysql. Je fais le portage vers SQLServer mais je bute sur une erreur...

    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
     
    scriptella.execution.EtlExecutorException: Location: /etl/script[1]
    JDBC provider exception: Unable to execute statement
    Error statement: 
    SET FOREIGN_KEY_CHECKS=0
    Error codes: [S0001, 102]
    Driver exception: com.microsoft.sqlserver.jdbc.SQLServerException: Syntaxe incorrecte vers '='.
    	at scriptella.execution.EtlExecutor.execute(EtlExecutor.java:172)
    	at scriptella.driver.spring.EtlExecutorBean.execute(EtlExecutorBean.java:144)
    	at scriptella.execution.EtlExecutor.execute(EtlExecutor.java:143)
    	at scriptella.driver.spring.EtlExecutorBean.execute(EtlExecutorBean.java:136)
    	at com.orange.connectedemergency.cenomad.referentiel.synchro.PopulateRef.execute(PopulateRef.java:78)
    	at com.orange.connectedemergency.cenomad.referentiel.synchro.PopulateRef.main(PopulateRef.java:92)
    Caused by: scriptella.core.ExceptionInterceptor$ExecutionException: /etl/script[1] failed: Unable to execute statement
    	at scriptella.core.ExceptionInterceptor.execute(ExceptionInterceptor.java:44)
    	at scriptella.core.Session.execute(Session.java:103)
    	at scriptella.execution.EtlExecutor.execute(EtlExecutor.java:209)
    	at scriptella.execution.EtlExecutor.execute(EtlExecutor.java:165)

    voici l'url de connection qui fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <connection id="out" driver="auto" url="jdbc:sqlserver://127.0.0.1"
    		user="testeur" password="test" />
    faut-il changer la syntaxe de min script puisque la ligne SET FOREIGN_KEY_CHECKS=0; ne lui plait pas. (Si j'enlève cette ligne la suivante "TRUNCATE ..." lance la même erreur.

    Quelqu'un a une idée?
    Merci

  2. #2
    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,

    SET FOREIGN_KEY_CHECKS est une syntaxe purement mysql

    Avec SQL Server il faut utiliser la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE <table> NOCHECK CONSTRAINT <nom_contrainte>
    ++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    Merci,
    Y a t il un tuto avec les équivalences entre les 2 ? Il faudrait que je traduise tout...

  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 761
    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 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Non, car MySQL c'est du pseudo SQL spécifique alors que SQL Server est plutôt calé sur la norme SQL !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Bonjour,

    SET FOREIGN_KEY_CHECKS est une syntaxe purement mysql

    Avec SQL Server il faut utiliser la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE <table> NOCHECK CONSTRAINT <nom_contrainte>
    ++
    J'aurais besoin d'une petite précision...
    quel est le nom de la contrainte pour les foreign key?

    j'ai l'erreur suivante et je ne trouve pas la bonne contrainte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Impossible de tronquer la table ... parce qu'elle est actuellement référencée par une contrainte FOREIGN KEY.
    Merci.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    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 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par jocqfd Voir le message
    J'aurais besoin d'une petite précision...
    quel est le nom de la contrainte pour les foreign key?

    j'ai l'erreur suivante et je ne trouve pas la bonne contrainte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Impossible de tronquer la table ... parce qu'elle est actuellement référencée par une contrainte FOREIGN KEY.
    Merci.
    Le nom de la contrainte FK est le nom que vous lui avez donné. Si vous ne le savez pas, il suffit de regarder dans la vue INFORMATION_SCHEMA.TABLE_CONSTRAINTS

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    dans la vue Information_schema.table_constraints je n'ai que le nom des columns dans le dossier "columns"... à part ça rien! les autres dossiers sont Triggers indexes et statistics.

  8. #8
    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
    Utilisez la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT 
    	TABLE_SCHEMA,
    	TABLE_NAME,
    	CONSTRAINT_SCHEMA,
    	CONSTRAINT_NAME
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    WHERE TABLE_NAME = <table>;
    ++

Discussions similaires

  1. Problème passage MySQL à Oracle
    Par limalima dans le forum Connexions aux bases de données
    Réponses: 0
    Dernier message: 05/09/2013, 11h56
  2. Réponses: 1
    Dernier message: 17/04/2009, 11h37
  3. Réponses: 11
    Dernier message: 08/06/2006, 16h53
  4. problème de passage de texte avec getvariable
    Par VincentB dans le forum Flash
    Réponses: 2
    Dernier message: 12/01/2004, 18h35
  5. problème de connection mysql par tcp/ip
    Par leroyphil dans le forum Administration
    Réponses: 5
    Dernier message: 04/09/2003, 18h27

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