Frage

Also ich bin hier nur verwirrt.

Ich habe zu meiner Datenbank von MySQL zu MS SQL Server migrieren 2008. ich die Daten über die "MS SQL Data Wizard" App von SQL Maestros übertragen haben. Es nahm die Daten + Struktur aus meiner MySQL-Datenbank „gk“ und kopiert sie in eine Datenbank „gk“ auf meinem MS SQL Express-Instanz.

Aber wenn ich an die MS SQL-Instanz verbinden und versuchen, eine SQL-Abfrage auszuführen, ich nur Ergebnisse, wenn ich „select * from gk.TABLENAME“ oder „select * from gk.gk.TABLENAME“ ausführen ... Wenn ich „select * from TABLENAME“ nach der Ausführung „use gk“ ausführen, ich erhalten:

  

Fehler: ungültiger Objektnamen ‚TABELLENNAME‘
  SQLState: S0002
  Fehlercode: 208

Wie kann ich diese verhalten „normal“? Das heißt, verbinde ich mit einer bestimmten Datenbank, so dass ich muss es nicht explizit sagen, in der Datenbank / Schema der Tabelle zu finden?

UPDATE: Ich sollte die Struktur angeben, die vom SQL Data Wizard App erstellt wurde. Mit Blick auf den Objektbrowser Baum auf dem SQL Server Management Studio, gibt es diese:

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

... und so weiter.

Danke. -dan

War es hilfreich?

Lösung

Im Login-Dialog Eigenschaften für Ihren Benutzer gibt es eine „User Mapping“ Seite, wo Sie das Benutzerstandardschema festlegen. es „gk“ (im „gk“ Datenbank) Einstellung sollte Ihnen ermöglichen, Abfragen zu schreiben, ohne die Tabellen vollständig qualifiziert.

Andere Tipps

Versuchen Sie dies, wenn Sie nicht bereits:

USE gk
GO

SELECT * FROM tablename

Sieht aus wie der Assistent eine Datenbank namens „gk“ erstellt, und dann setzt alle Tabellen in einem Schema Titel „gk“.

Wenn die Tabellen in einem benannten Schema existieren (dh etwas neben dem Standardschema von „dbo“), dann werden Sie immer das Schema angeben, wenn es abgefragt wird.

Hinweis: In manchen Situationen ist es eine erhebliche Leistungseinbuße für nicht explizit das Schema / Besitzer angeben. Bedeutsamer in älteren Versionen von SQL, aber immer noch da. Kann nicht groß genug sein Unterschied in der Anwendung auf die Materie, aber immer noch wissenswert:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top