Подтвердить что ты не робот

Определить, существует ли таблица в SQL Server CE?

Я знаю, что это похоже на этот вопрос, но я использую SQL Server CE 3.5 с проектом WinForms на С#. Как определить, существует ли таблица? Я знаю, что ключевое слово IF не поддерживается, хотя EXISTS есть. Имеет ли information_schema в CE, где я могу запросить его? Спасибо.

4b9b3361

Ответ 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
}