18 Stimmen

Feststellen, ob eine Tabelle in SQL Server CE existiert?

Ich weiß, das ist ähnlich wie bei diese Frage aber ich verwende SQL Server CE 3.5 mit einem WinForms-Projekt in C#. Wie kann ich feststellen, ob eine Tabelle existiert? Ich weiß, dass die IF Schlüsselwort wird nicht unterstützt, obwohl EXISTS ist. Existiert information_schema in CE, wo ich es abfragen kann? Danke!

36voto

mmx Punkte 400975

Ja, es gibt sie:

SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'TableName'

1voto

chrisgl Punkte 44

Alternativ können Sie die Tabelle abfragen und die ausgelöste Exception abfangen. Wenn es eine Exception gibt, wurde die Tabelle nicht gefunden, andernfalls existiert die Tabelle.

SELECT TOP 1 1 FROM TableName;

Ein kleiner und einfacher Leistungstest hatte bessere Ergebnisse als die Abfrage gegen INFORMATION_SCHEMA. Obwohl ich eine Abfrage gegen INFORMATION_SCHEMA als sauberer ansehen würde.

0voto

Alex Jolig Punkte 12486

Datenbank-Helfer verwenden:

var db = Database.Open("MyDatabase");
var sql = @"SELECT Count(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'MyTable'"
var count = db.QueryValue(sql);
if(count.Equals(1)){
    //table exists
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X