Verwenden Sie SqlConnection.GetSchema man Nur Tabellen (Keine Aussicht)

Wenn ich

SqlConnection.GetSchema("Tables");

es gibt alle Tabellen UND Ansichten für die Ziel-Datenbank.

Gibt es eine Möglichkeit, nur Tabellen zurück? Alle Forschung, die ich getan habe gibt mache ich das richtig aber es gibt immer die Ansichten, wie Sie Tabellen. Ich habe gegraben unten in die DataTable im debug, und ich kann nicht einmal einen Unterschied. Die Datentypen werden berichtet das gleiche... So weit wie ich sagen kann, es können nicht unterscheiden zwischen einer Ansicht und einer Tabelle. (Es macht Sinn, in einer Weise, da Sie eine Ansicht für alle Absichten und Zwecke IST ein Tisch).

Ich bin mit der Nordwind-Datenbank zum testen.

Schreibe ich die Anwendung in C#.

Hier ist der code, den ich verwende, um die schema-Informationen. Ziemlich einfach.

SQLCon.Open();
DataTable tables = SQLCon.GetSchema("Tables");
SQLCon.Close();

Ich würde sehr gerne die getschema-Methode und nicht die Abfrage der Datenbank in einer anderen Art und Weise... wenn überhaupt möglich.

Nach dieser (msdn.microsoft.com/en-us/library/ms254969.aspx), die zurückgegebenen Daten Tabelle hat eine Spalte table_type, die Ihnen sagt, ob es ein VIEW oder eine BASE TABLE. Verwenden Sie diese Spalte zum filtern der Ansichten auf Ihre C# - Ende.
Ich bin nicht mit C# , aber ich glaube, GetSchema("Tables",Einschränkungen) mit Ihrer gewünschten Einschränkungen funktionieren sollte.
BeemerGuy.net danke, das funktioniert. Ich war auf der Suche an der falschen verdammten Daten-Tabelle. Wenn Sie Ihre Antwort eine wirkliche Antwort kann ich markieren Sie es als richtig.
In vielerlei Hinsicht, der Behandlung von Tabellen und sichten als separate und unterscheidbare kann ein Fehler sein (in der Tat, einige beziehen sich auf Ansichten als virtuelle Tabellen). Wenn Sie tun, zwischen Ihnen zu unterscheiden, Sie nehmen ein wertvolles Mittel entwickeln eine Datenbank - ersetzen einer Tabelle eine Struktur mit einem anderen, aber schreiben Ansichten, die imitieren die ursprüngliche Struktur, so dass Anwendungen benötigen keine änderung.

InformationsquelleAutor Steve | 2012-11-04

Schreibe einen Kommentar