遵循 SO Question #167576 中提出的准则,我在 C# WinForm 应用程序中构建了以下 SQL 查询字符串来确定表 RMCoil
是否存在:
using (SqlCeCommand cmd = new SqlCeCommand(null, new SqlCeConnection(Connection))) {
cmd.Connection.Open();
cmd.CommandText =
"IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='RMCoil') " +
"SELECT 1 ELSE SELECT 0";
if (cmd.ExecuteNonQuery() < 1) {
// code to create table
}
}
执行非查询会抛出此SqlCeException
:
There was an error parsing the query. [ Token line number = 1,Token line offset = 1,Token in error = IF ]
我对 SqlCeServer 还很陌生。有人可以告诉我如何在一行中执行此查询吗?
最佳答案
SELECT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='RMCoil')
可能会成功?
您还必须执行 ExecuteScalar()
而不是 ExecuteNonQuery()
我认为要检索您的值...
正如 Paul Sasik 非常明智地指出的那样,以下查询甚至更好:
从 INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='RMCoil' 中选择 COUNT(*)
关于C# SqlCeException : One Line SQL to determine table exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6362794/