Question

Je sais que cela ressemble à la cette question , mais je suis utiliser SQL Server CE 3.5 avec un projet WinForms en C #. Comment puis-je déterminer si une table existe? Je sais que le mot clé IF n'est pas pris en charge, bien que EXISTS le soit. Est-ce que information_schema existe dans CE où je peux interroger? Merci.

Était-ce utile?

La solution

Oui, cela existe:

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

Autres conseils

Vous pouvez également interroger la table et intercepter l’exception levée. S'il existe une exception, la table n'a pas été trouvée, sinon la table existe.

SELECT TOP 1 1 FROM TableName;

Un petit test de performance simple a donné de meilleurs résultats que la requête sur INFORMATION_SCHEMA. Bien que je considérerais une requête contre INFORMATION_SCHEMA comme plus propre.

Utilisation de l'assistant de base de données:

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
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top