我正在尝试向 SqlCe 数据库(版本 3.5,哦,使用 C# 3)进行大量批量插入。我尝试了各种方法(表适配器插入、准备好的参数化查询、sqlceresultset 插入等)。正如我在许多网站上所读到的,最快的时间是在表直接模式下使用 SqlCeResultSet 对象。
我想通过在插入之前禁用必要表上的所有索引来进一步加快速度(然后我将在之后重建它们)。我在使 ALTER INDEX 语句工作时遇到问题(以前从未使用过它,所以我确信我忽略了一些简单的东西)。
基本上我已经创建了一个 SqlCeCommandObject 并以下列方式设置了一个 alter 语句(连接对象已经设置并打开等):
.
.
.
SqlCeCommand disableIndexCommand = Connection.CreateCommand();
disableIndexCommand.CommandText = "ALTER INDEX ALL ON ItemMaster DISABLE";
disableIndexCommand.ExecuteNonQuery();
.
.
.
当我尝试运行此代码时,出现以下错误:
解析查询时出错。[令牌行号 = 1,令牌行偏移量 = 7,错误令牌 = INDEX]
在我看来,它不理解 alter 语句中的 INDEX 关键字。SqlCe 不支持这个吗?
谢谢
[更新] - 我尝试了其他 DDL 语句(如 DROP INDEX、CREATE INDEX),但我似乎无法让它们中的任何一个工作?就 DDL 语句而言,我一直在到处搜索,试图找到 SSCE 中支持和不支持的内容的列表。没运气。有谁知道这方面的好资源。我必须说,关于 sqlce compact 3.5 版的 MS 文档毫无用处...