【问题标题】:How to create index in SQL from c#如何从 C# 在 SQL 中创建索引
【发布时间】:2013-05-02 15:53:37
【问题描述】:

场景如下。我需要在 C# 应用程序的开头删除一个特定的索引。在所有作为处理一部分的插入sql语句完成后,我需要重新创建索引。

我需要将索引删除和创建作为应用程序的一部分,因为我将把这个应用程序提供给部署团队。然后,部署团队将在生产环境中运行该应用程序。

内联 sql 是从 C# 在 SQL Server 中创建索引的最佳方式吗?

还是有别的办法?

【问题讨论】:

  • 您编写一个 SQL 脚本 - 在您选择的任何文本编辑器中 - 然后执行它......问题是什么,真的吗?!?!?
  • 我想通过 C# 触发它。我知道如何从 C# 触发常规动态 sql 和存储过程。只是想知道如何从 C# 触发创建索引。我将它作为 c# 应用程序的一部分运行,我将把它交给部署团队在生产中运行
  • 如果你停止使用“触发器”这个词可能会有所帮助,或者至少解释一下它对你意味着什么。如果您的基本问题是如何从 C# 创建索引,那么您可以按照@marc_s 或use SMO 所说的那样编写脚本。
  • Trigger = "kick off" 在这种情况下。我知道有 sql 触发器,但我认为在这个特定的上下文中很清楚我所说的触发器是什么意思。
  • 如果您从 C# 应用程序创建索引,则可能出现问题。

标签: c# sql-server indexing


【解决方案1】:

您可以使用ExecuteNonQuery 并简单地发送CREATE INDEX 命令。

【讨论】:

    【解决方案2】:

    你的问题措辞有点奇怪。

    您是在问如何创建索引或如何更新统计信息(以便优化器决定哪个索引可以最快地给出查询的答案)?

    使用 CREATE INDEX 创建索引。

    导致重新计算统计数据的是 UPDATE STATISTICS。

    两者都可以通过 C# 或任何其他方法完成。

    每当创建/更新/删除任何内容时都会更新索引。

    【讨论】:

    • 我知道如何从 C# 触发常规动态 sql 和存储过程。只是想知道如何从 C# 触发创建索引。我将其作为 c# 应用程序的一部分运行,我将移交给部署团队以在生产中运行
    • 请参阅我的问题下的 cmets 以获得更多说明。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 2022-01-17
    • 2014-06-10
    • 2017-11-03
    • 1970-01-01
    相关资源
    最近更新 更多