SQL und Schema-Angabe

07/04/2010 - 14:59 von ChristianH | Report spam
Hi,

ich habe eine C# Anwendung, die mittels den ODBC-Klassen auf verschiedene
ODBC-Datenquellen zugreifen kann.

Bei den Abfragen wird ein SQL wie folgt generiert:
SELECT * FROM MyTable;

Ein Kunde hat Probleme mit der Komponente. Es fehlt im SQL die Angabe des
Schemas:
Select * from SOA.MyTable

Im Microsoft SQL Server Management Studio habe ich auf eine Tabelle den
Kontextmenübefehl "SELECT TOP 1000 ROWS" gewàhlt. Generiertes SQL:
SELECT * FROM [MyDB].[dbo].[MyTable]

Frage:
Wie muss die Angabe im der Tabelle bzw. View in der SQL Abfrage aussehen,
damit diese mit jeder ODBC-Datenquelle funktioniert? Nur der Tabellenname
reicht offensichtlich nicht immer aus.

Vielen Dank
Christian
 

Lesen sie die antworten

#1 Elmar Boye
07/04/2010 - 19:38 | Warnen spam
Hallo Christian,

"ChristianH" schrieb ...
ich habe eine C# Anwendung, die mittels den ODBC-Klassen auf verschiedene
ODBC-Datenquellen zugreifen kann.

Bei den Abfragen wird ein SQL wie folgt generiert:
SELECT * FROM MyTable;

Ein Kunde hat Probleme mit der Komponente. Es fehlt im SQL die Angabe des
Schemas:
Select * from SOA.MyTable



Wenn die Schema Angabe fehlt, so wird das Standard-Schema
des Datenbank-Benutzers verwendet. Für Benutzer, die über eine
Windows-Gruppe authentifiziert werden, gibt es kein Standard-Schema.
http://msdn.microsoft.com/de-de/lib...73463.aspx
"CREATE USER"

Wie muss die Angabe im der Tabelle bzw. View in der SQL Abfrage aussehen,
damit diese mit jeder ODBC-Datenquelle funktioniert? Nur der Tabellenname
reicht offensichtlich nicht immer aus.



Deswegen und weil der Zugriff inkl. qualifiziertem Schema schneller ist,
solltest Du das Schema immer mit angeben, also
SELECT ... FROM Schema.Tabelle

Die Datenbankangabe kann entfallen, solange sich die Schema / Tabelle
in der aktuellen Datenbank befinden. Siehe
http://msdn.microsoft.com/de-de/lib...75821.aspx
"Regeln für die Sichtbarkeit und Kennzeichnung von Objekten"

und auch: http://msdn.microsoft.com/de-de/lib...90387.aspx
"Trennung von Benutzer und Schema"

Gruß Elmar

Ähnliche fragen