18

我知道这与这个问题类似,但我在 C# 中使用 SQL Server CE 3.5 和 WinForms 项目。如何确定表是否存在?我知道IF不支持关键字,但支持EXISTS。CE 中是否存在 information_schema 可以查询它?谢谢。

4

3 回答 3

36

是的,它确实存在:

SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'TableName'
于 2009-01-10T18:51:21.567 回答
1

作为替代方案,您可以查询表并捕获抛出的异常。如果有异常,则表未找到,否则表存在。

SELECT TOP 1 1 FROM TableName;

一个小而简单的性能测试比针对 INFORMATION_SCHEMA 的查询有更好的结果。尽管我认为针对 INFORMATION_SCHEMA 的查询更清洁。

于 2013-02-24T00:34:03.790 回答
0

使用数据库助手:

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
}
于 2014-10-08T07:08:01.503 回答