Sql server 如何在SQL Server 2008中创建禁用的索引?

Sql server 如何在SQL Server 2008中创建禁用的索引?,sql-server,tsql,sql-server-2008,indexing,Sql Server,Tsql,Sql Server 2008,Indexing,如何在SQL Server 2008中创建禁用的索引?我可以先创建索引,然后禁用它,但如果表很大,那就是浪费时间。如何直接在禁用状态下创建索引 背景信息:我希望有两个数据库具有相同的模式对象,但我只需要其中一个中的索引。你真的不能。我不知道有什么方法可以在运行create脚本时创建一个索引而不实际创建它 作为一种解决方法,您可以使用已知将计算为false的筛选器创建所需的索引,例如: CREATE INDEX ix_myindex ON MyTable(myfields) WHERE Prima

如何在SQL Server 2008中创建禁用的索引?我可以先创建索引,然后禁用它,但如果表很大,那就是浪费时间。如何直接在禁用状态下创建索引


背景信息:我希望有两个数据库具有相同的模式对象,但我只需要其中一个中的索引。

你真的不能。我不知道有什么方法可以在运行create脚本时创建一个索引而不实际创建它

作为一种解决方法,您可以使用已知将计算为false的筛选器创建所需的索引,例如:

CREATE INDEX ix_myindex ON MyTable(myfields)
WHERE PrimaryKeyWhichIsNeverNULL IS NULL
然后禁用它,然后更改它以移除过滤器。我不能100%确定这不会重建它。

您可以创建索引


不确定这是否满足您的需要?

不允许重新定义定义?不首先创建索引有什么错?我的意思是,你自己说过,你只需要在两个数据库中的一个中使用索引。所以,只需在其中一个中创建它,而不在另一个中创建。我希望尽可能使模式保持一致,因为我相信它可以简化维护,并可能防止将来出现问题,这是我目前无法预见的,但这就是存在的。我会考虑一下。好主意
CREATE INDEX ix ON T(Col)
WITH STATISTICS_ONLY