我知道这与这个问题类似,但我在 C# 中使用 SQL Server CE 3.5 和 WinForms 项目。如何确定表是否存在?我知道IF
不支持关键字,但支持EXISTS
。CE 中是否存在 information_schema 可以查询它?谢谢。
mitzoe
问问题
16104 次
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 回答