当前位置:  开发笔记 > 编程语言 > 正文

如何通过SqlCeCommand对象禁用sql server compact edition中的所有表索引?

如何解决《如何通过SqlCeCommand对象禁用sqlservercompactedition中的所有表索引?》经验,为你挑选了1个好方法。

我正在尝试在SqlCe数据库(版本3.5,哦和使用C#3)中进行大量的批量插入.我已经尝试了各种方法(表适配器插入,准备参数化查询,sqlceresultset插入等).正如我在许多网站上看到的那样,最快的时间是在表直接模式下使用SqlCeResultSet对象.

我想通过在执行插入之前禁用必要表上的所有索引来进一步提高速度(之后我会重建它们).我有一个问题让ALTER INDEX语句工作(以前从未使用它,所以我确定我忽略了一些简单的事情).

基本上我已经创建了一个SqlCeCommandObject并以下面的方式设置了一个alter语句(Connection对象已经设置并且已经打开等):

.
.
.
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文档已经相当无用我必须说...



1> David Wengie..:

SqlServerCe上的DROP INDEX语法是:

DROP INDEX [TableName].IndexName

SqlServerCe中没有ALTER INDEX语法,因此当它在"INDEX"中显示"error parsing"时,因为它寻找"TABLE",所以ALTER在SqlServerCe中唯一有效.

编辑:至于文档,我找到的最好的方法是下载联机丛书.如果您没有使用3.5 SP1,请在此处查看可用下载的更完整列表.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有