T-Sql

如何重新創建具有相同設置的索引?

  • August 28, 2019

我的情況是,我想將另一個包含的列添加到現有索引,但保持其餘設置(例如 FILLFACTOR、ONLINE、SORT_IN_TEMPDB 等)相同。

  • 我在原始碼管理中沒有以前的版本
  • 我沒有在 sys.indexes DMV 中找到它們中的大多數(FILLFACTOR 在那裡,但不是線上)
  • 在對象資源管理器中查找索引並編寫腳本會填充 ONLINE 設置的預設值(並省略 DATA_COMPRESSION)
  • 我沒有在 OBJECTPROPERTY DMF 中找到該屬性
  • Brent Ozar 的 sp_BlitzIndex 也不提供其中一些高級設置
  • sp_helpindex 為我提供了與父表上的 sp_help 相同的有限資訊。
  • 我無法測試 WITH (DROP_EXISTING = ON) 是否使用相同的設置重新創建索引,因為我無法在任何地方找到設置。

有任何想法嗎?

您可能應該Tools-Options-SQL Server Object Explorer-ScriptingSSMS菜單中使用腳本選項。

在那裡,您可以定義您想要編寫的腳本和不想要編寫的腳本。Compression有沒有。

至於其他屬性 - 看看這個 StackOverflow問題 - 它可能會有所啟發:

SORT_IN_TEMPDB不是索引的屬性,而是您可以指定的選項,說明如何創建索引。一旦索引存在(即創建索引語句完成),是否SORT_IN_TEMPDB在創建時指定就不會儲存在任何地方,因為這無關緊要。

引用自:https://dba.stackexchange.com/questions/246418