Определить, существует ли таблица в SQL Server CE? - PullRequest
18 голосов
/ 10 января 2009

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

Ответы [ 3 ]

35 голосов
/ 10 января 2009

Да, он существует:

SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'TableName'
1 голос
/ 24 февраля 2013

В качестве альтернативы вы можете запросить таблицу и поймать выброшенное исключение. Если есть исключение, таблица не найдена, иначе таблица существует.

SELECT TOP 1 1 FROM TableName;

Небольшой и простой тест производительности показал лучшие результаты, чем запрос к INFORMATION_SCHEMA. Хотя я бы посчитал Запрос против INFORMATION_SCHEMA более чистым.

0 голосов
/ 08 октября 2014

Использование помощника по базам данных:

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
}
...