确定SQL Server CE中是否存在表?
我知道这与这个问题类似,但我在C#中使用SQL Server CE 3.5和WinForms项目。 如何确定表是否存在? 我知道虽然EXISTS
是,但不支持IF
关键字。 information_schema是否存在于我可以查询它的CE中? 谢谢。
是的,确实存在:
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TableName'
作为替代方案,您可以查询表并捕获抛出的exception。 如果存在exception,则找不到表,否则表存在。
SELECT TOP 1 1 FROM TableName;
一个简单而简单的性能测试比针对INFORMATION_SCHEMA的查询具有更好的结果。 虽然我认为对INFORMATION_SCHEMA的查询更清晰。
使用数据库助手:
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 }