Я знаю, что это похоже на этот вопрос, но я использую SQL Server CE 3.5 с проектом WinForms на С#. Как определить, существует ли таблица? Я знаю, что ключевое слово IF
не поддерживается, хотя EXISTS
есть. Имеет ли information_schema в CE, где я могу запросить его? Спасибо.
Определить, существует ли таблица в SQL Server CE?
Ответ 1
Да, он существует:
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'TableName'
Ответ 2
В качестве альтернативы вы можете запросить таблицу и поймать выброшенное исключение. Если существует Исключение, таблица не найдена, иначе таблица существует.
SELECT TOP 1 1 FROM TableName;
Небольшой и простой тест производительности имел лучшие результаты, чем запрос к INFORMATION_SCHEMA. Хотя я бы рассматривал запрос с INFORMATION_SCHEMA как очиститель.
Ответ 3
Использование помощника базы данных:
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
}