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 :

Requête MySQL à transformer en SQL Server


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Points : 60
    Points
    60
    Par défaut Requête MySQL à transformer en SQL Server
    Bonjour,

    Je fais actuellement la réecriture d'un script de migration de base qui a été effectué sur MySQL et je souhaite le réécrire pour SQL Server. j'ai un problème sur cette partie du script que je n'arrive pas à transformé pour SQL Server
    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
     Code MySQL:
    INSERT INTO <MaBase1>.<MaTable> (
      	index0,
      	id_1,
      	id_2,
      	type,
      	groupname,
      	description,
      	sch,
      	system,
      	timestamp
    ) SELECT DISTINCT
    	<MaTable1>.id_index,
    	<MaTable1>.id,
    	'0',
    	0,
    	<MaTable1>.name,
    	'texte',
    	<MaTable1>.schedule,
    	0,
    	0
    FROM <MaBase2>.<MaTable1>, <MaBase2>.<MaTable2>
    WHERE dynamic=1 AND <MaTable1>.id = <MaTable2>.id;

    Coradialement
    Battl14

  2. #2
    En attente de confirmation mail Avatar de gd_dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Points : 129
    Points
    129
    Par défaut
    bonjour,

    Je pense que le problème vien de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO <MaBase1>.<MaTable> (
      	index0,
      	id_1,
      	id_2,
    Car sur SQL serveur il y a la notion de l'utilisateur attaché à la table. La plus part du temps c'est dbo (data base owner).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO <MaBase1>.dbo.<MaTable> (
      	index0,
      	id_1,
      	id_2,

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Points : 60
    Points
    60
    Par défaut
    gd_dev,

    Lors de ma transformation je n'ai pas oublier de spécifier le propriétaire de la base qui est effectivement dbo.
    Ma transformation en SQL Server est celle ci actuellement
    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
    SET IDENTITY_INSERT  <MaBase1>.dbo.<MaTable> ON
    INSERT INTO <MaBase1>.dbo.<MaTable> (
      	index0,
      	id_1,
      	id_2,
      	type,
      	groupname,
      	description,
      	sch,
      	system,
      	timestamp
    ) SELECT DISTINCT
    	<MaTable1>.id_index,
    	<MaTable1>.id,
    	'0',
    	0,
    	<MaTable1>.name,
    	'texte',
    	<MaTable1>.schedule,
    	0,
    	0
    FROM <MaBase2>.dbo.<MaTable1>, <MaBase2>.dbo.<MaTable2>
    WHERE dynamic=1 AND <MaTable1>.id = <MaTable2>.id
    SET IDENTITY_INSERT  <MaBase1>.dbo.<MaTable> OFF;
    et ça me renvoi les messages d'erreurs suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Msg 4104, Niveau 16, État 1, Ligne 2
    The multi-part identifier "<MaTable1>.id" could not be bound.
    Msg 4104, Niveau 16, État 1, Ligne 2
    The multi-part identifier "<MaTable2>.id" could not be bound.
    Msg 4104, Niveau 16, État 1, Ligne 2
    The multi-part identifier "<MaTable1>.id_index" could not be bound.
    Msg 4104, Niveau 16, État 1, Ligne 2
    The multi-part identifier "<MaTable1>.id" could not be bound.
    Msg 4104, Niveau 16, État 1, Ligne 2
    The multi-part identifier "<MaTable1>.name" could not be bound.
    Msg 4104, Niveau 16, État 1, Ligne 2
    The multi-part identifier "<MaTable1>.schedule" could not be bound.
    Le message d'erreur s'emble indiquer qu'il n'est pas capable de faire le lien et de retrouver les données provenant d'une autre base.
    Pour être plus claire impossibilité d'effectuer un insert de données d'une base différente s'appuyant sur une requête.

    Cordialement
    Battl14

  4. #4
    En attente de confirmation mail Avatar de gd_dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Points : 129
    Points
    129
    Par défaut
    Avez-vous essayé la syntaxe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     SELECT DISTINCT
    	<MaBase2>.dbo.<MaTable1>.id_index,
    	<MaBase2>.dbo.<MaTable1>.id,
    	'0',
    	0,
    	<MaBase2>.dbo.<MaTable1>.name,
    	'texte',
    	<MaBase2>.dbo.<MaTable1>.schedule,
    	0,
    	0
    FROM <MaBase2>.dbo.<MaTable1>, <MaBase2>.dbo.<MaTable2>
    WHERE dynamic=1 AND <MaBase2>.dbo.<MaTable1>.id = <MaBase2>.dbo.<MaTable2>.id

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Points : 60
    Points
    60
    Par défaut
    Oui et celle ci fonctionne parfaitement!

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Points : 60
    Points
    60
    Par défaut
    Précision:
    A partir de <MaBase2>, par contre à partir de <MaBase2> message d'erreur identique au post plus haut! (Ce qui est normale)!

Discussions similaires

  1. [SQL-Server] Transformer une bd mysql en bd SQL Server
    Par beegees dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/12/2011, 12h25
  2. MySQL et MS SQL server
    Par piscine dans le forum Bases de données
    Réponses: 8
    Dernier message: 04/03/2006, 15h03
  3. Exporter une grosse DB MySql vers Ms Sql Server 2005
    Par frechy dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/11/2005, 12h26
  4. Requêtes analyses croisées sous SQL Server 2000
    Par callo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/09/2005, 19h27
  5. Mysql, Interbase ou SQL SERVER?
    Par zimzoum10 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 22/03/2005, 19h07

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