J'ai dû faire quelques choses pour que ça marche. Utilisation également d'un serveur SQL Win2K et importation de données depuis MySql.
Une chose que nous avons faite a été d'installer le 3.51.22 version du pilote ODBC MySql (mysql-connector-odbc-3.51.22-win32.msi).
Ensuite, l'article suivant a été très utile :http://www.sqlservercentral.com/Forums/Topic340912-146-1.aspx
L'essentiel était de désactiver les transactions ainsi que de se référer à la DSN lors de la création d'un serveur lié. Pour plus de commodité, je vais copier et coller les instructions de l'article SQLServerCentral dans cet article ci-dessous :
Création d'un serveur lié dans SSMS pour une base de données MySQL
- Téléchargez le pilote MySQL ODBC depuis mysql.com
Installez le pilote MySQL ODBC sur le serveur où réside SQL Server - Double-cliquez sur le fichier Windows Installer et suivez les instructions.
Créez un DSN à l'aide du pilote MySQL ODBC Démarrer-> Paramètres -> Panneau de configuration -> Outils d'administration -> Sources de données (ODBC) -Cliquez sur l'onglet DSN système -Cliquez sur Ajouter -Sélectionnez le pilote MySQL ODBC-Cliquez sur Terminer Dans l'onglet Connexion :- Tapez un nom descriptif pour votre DSN. -Tapez le nom du serveur ou l'adresse IP dans la zone de texte du serveur.-Tapez le nom d'utilisateur nécessaire pour se connecter à la base de données MySQL dans la zone de texte de l'utilisateur. -Tapez le mot de passe nécessaire pour vous connecter à la base de données MySQL dans la zone de texte du mot de passe. -Sélectionnez la base de données dans laquelle vous souhaitez commencer. Dans l'onglet Avancé :Sous Indicateurs 1 :-Cochez Ne pas optimiser la largeur de la colonne. -Cochez Renvoyer les lignes correspondantes -Cochez Autoriser les résultats volumineux -Cochez Utiliser le protocole compressé -Cochez les colonnes BIGINT sur INT -Cochez Sûr sous les drapeaux 2 :-Cochez Ne pas demander lors de la connexion -Cochez Ignorer # dans le nom de la table sous les drapeaux 3 :-Cochez Retour Noms de table pourSQLDescribeCol -Check Disable Transactions Now Testez votre DSN en cliquant sur le bouton Test
Créez un serveur lié dans SSMS pour la base de données MySQL SSMS (SQL Server Management Studio -> Développez les objets du serveur -Cliquez avec le bouton droit sur LinkedServers -> Sélectionnez un nouveau serveur lié sur la page générale :-LinkedServer :saisissez le nom de votre serveur lié -Type de serveur :Sélectionnez une autre source de données - Fournisseur :sélectionnez le fournisseur Microsoft OLE DB pour les pilotes ODBC - Nom du produit :saisissez MySQLDatabase - Source de données :saisissez le nom du DSN que vous avez créé sur la page de sécurité - Mappez une connexion à l'utilisateur distant et indiquez le mot de passe de l'utilisateur distant - Cliquez sur Ajouter sous Mappages de connexion au serveur local et de connexion au serveur distant :-Sélectionnez une connexion locale dans la liste déroulante -Saisissez le nom de l'utilisateur distant -Saisissez le mot de passe de l'utilisateur distant
Modifiez les propriétés du fournisseur MSDASQL Développez les fournisseurs -> Cliquez avec le bouton droit sur MSDASQL -> Sélectionnez Propriétés -Activer les requêtes imbriquées -Activer le niveau zéro uniquement (celui-ci est le kicker) -Activer Autoriser inprocess -Activer Prend en charge l'opérateur 'Like'
Modifier les paramètres dans la configuration de la surface d'exposition de SQL Server pour les fonctionnalités - Activer la prise en charge OPENROWSET et OPENDATASOURCE.
Modifier les paramètres dans la configuration de la surface d'exposition de SQL Server pour les services et les connexions - Activer les connexions locales et distantes via TCP/IP et les canaux nommés
Arrêtez SQL Server et SQL Server Agent
- Démarrer SQL Server et l'agent SQL Server
Je n'ai pas trouvé que j'avais besoin de redémarrer le serveur SQL.