MS SQL Server 2008 - Confusion lors de la migration à partir de MySQL à partir de: & # 8220; sélectionnez XYZ dans TABLE & # 8221;

StackOverflow https://stackoverflow.com/questions/611850

Question

Donc, je suis juste confus ici.

Je dois migrer ma base de données de MySQL vers MS SQL Server 2008. J'ai transféré les données via l'assistant "MS SQL Data Wizard". application de SQL Maestros. Il a fallu la structure data + de ma base de données MySQL " gk " et copié dans une base de données " gk " sur mon instance MS SQL Express.

Mais lorsque je me connecte à l'instance MS SQL et que j'essaie d'exécuter une requête SQL, les résultats ne sont obtenus que lorsque j'exécute " select * from gk.TABLENAME ". ou " select * from gk.gk.TABLENAME " ... Si j'exécute " select * from TABLENAME " après avoir exécuté " use gk ", je reçois:

  

Erreur: nom d'objet non valide 'TABLENAME'
  SQLState: S0002
  Code d'erreur: 208

Comment faire pour que cela se comporte "normalement"? C'est-à-dire que je me connecte à une base de données spécifique, de sorte que je n'ai pas à lui indiquer explicitement dans quelle base de données / quel schéma trouver la table?

MISE À JOUR: Je devrais spécifier la structure créée par l'application SQL Data Wizard. Dans l'arborescence du navigateur d'objets de SQL Server Management Studio, voici ce qui suit:

[HOSTNAME]\SQLEXPRESS (SQL Server ...)
  |-- Databases
       |-- System Databases
       |-- gk
            |...
            |-- Tables   
                  |-- TABLE1
                  |-- TABLE2
                  |-- TABLE3

... et ainsi de suite.

Merci. -dan

Était-ce utile?

La solution

Dans la boîte de dialogue Propriétés de connexion de votre utilisateur, il existe un " mappage utilisateur " page où vous pouvez définir le schéma par défaut de l'utilisateur. Définissez-le sur " gk " (dans la base de données "gk") devrait vous permettre d'écrire des requêtes sans qualifier complètement les tables.

Autres conseils

Essayez ceci si vous ne l'avez pas déjà fait:

USE gk
GO

SELECT * FROM tablename

On dirait que l’assistant a créé une base de données appelée "gk", puis a placé toutes les tables dans un schéma intitulé "gk".

Si les tables existent dans un schéma nommé (c'est-à-dire autre chose que le schéma par défaut de "dbo"), vous devrez toujours spécifier le schéma lors de son interrogation.

NOTE: Dans certaines situations, le fait de ne PAS spécifier explicitement le schéma / le propriétaire peut avoir un impact négatif sur les performances. Plus significatif dans les anciennes versions de SQL, mais toujours là. Il se peut que la différence ne soit pas assez importante pour que votre candidature soit prise en compte, mais cela vaut la peine de le savoir:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top