我的情况是,我想将另一个包含的列添加到现有索引,但保持其余设置(例如 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
在创建时指定就不会存储在任何地方,因为这无关紧要。