确定SQL Server CE中是否存在表?

时间:2009-01-10 18:41:42

标签: c# sql sql-server sql-server-ce

我知道这与this question类似,但我在C#中使用SQL Server CE 3.5和WinForms项目。如何确定表是否存在?我知道虽然IFEXISTS,但不支持{{1}}关键字。在我可以查询它的CE中是否存在information_schema?感谢。

3 个答案:

答案 0 :(得分:35)

是的,确实存在:

SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'TableName'

答案 1 :(得分:1)

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

SELECT TOP 1 1 FROM TableName;

一个简单而简单的性能测试比针对INFORMATION_SCHEMA的查询具有更好的结果。虽然我认为对INFORMATION_SCHEMA的查询更清晰。

答案 2 :(得分: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
}