gpt4 book ai didi

c# - 如何通过 SqlCeCommand 对象禁用 sql server 精简版中的所有表索引?

转载 作者:太空狗 更新时间:2023-10-30 00:47:29 28 4
gpt4 key购买 nike

我正在尝试对 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();
.
.
.

当我尝试运行此代码时,出现以下错误:

There was an error parsing the query. [ Token line number = 1, Token line offset = 7, Token in error = INDEX ]

在我看来,它没有理解 alter 语句中的 INDEX 关键字。 SqlCe 不支持这个吗?

谢谢

[更新] - 我尝试了其他 DDL 语句(如 DROP INDEX、CREATE INDEX),但我似乎无法使它们中的任何一个起作用?就 DDL 语句而言,我一直在到处搜索,试图找到 SSCE 支持和不支持的列表。没有运气。有谁知道这方面的任何好的资源。关于 sqlce compact 版本 3.5 的 MS 文档非常无用,我必须说...

最佳答案

SqlServerCe 上的 DROP INDEX 语法是:

DROP INDEX [TableName].IndexName

SqlServerCe 中没有 ALTER INDEX 语法,所以当它在“INDEX”处显示“错误解析”时,是因为它正在寻找“TABLE”,ALTER 在 SqlServerCe 中唯一有效。

编辑:至于文档,我发现最好的方法是下载 Books Online .如果您使用的不是 3.5 SP1,请查看 here获取更完整的可用下载列表。

关于c# - 如何通过 SqlCeCommand 对象禁用 sql server 精简版中的所有表索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/562705/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com