Déterminer si la table existe dans SQL Server CE?
-
08-07-2019 - |
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.
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
}