T-Sql
如何重新創建具有相同設置的索引?
我的情況是,我想將另一個包含的列添加到現有索引,但保持其餘設置(例如 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-Scripting
在SSMS
菜單中使用腳本選項。在那裡,您可以定義您想要編寫的腳本和不想要編寫的腳本。
Compression
有沒有。至於其他屬性 - 看看這個
StackOverflow
問題 - 它可能會有所啟發:
SORT_IN_TEMPDB
不是索引的屬性,而是您可以指定的選項,說明如何創建索引。一旦索引存在(即創建索引語句完成),是否SORT_IN_TEMPDB
在創建時指定就不會儲存在任何地方,因為這無關緊要。