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