Sql server 禁用表中的索引后出错
我想做批量插入,但需要很长时间。我的想法是禁用表上的索引,以便更快地进行插入。但在那之后,我得到了这个错误: 错误:查询处理器无法生成计划,因为表或视图“Sql server 禁用表中的索引后出错,sql-server,tsql,Sql Server,Tsql,我想做批量插入,但需要很长时间。我的想法是禁用表上的索引,以便更快地进行插入。但在那之后,我得到了这个错误: 错误:查询处理器无法生成计划,因为表或视图“CRMD\u MKTTG\u TG\u I”上的索引CRMD\u MKTTG\u TG\u I”已禁用 我正在使用以下脚本生成我的表: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [CRMD_MKTTG_TG_I]
CRMD\u MKTTG\u TG\u I
”上的索引CRMD\u MKTTG\u TG\u I
”已禁用
我正在使用以下脚本生成我的表:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [CRMD_MKTTG_TG_I](
[CLIENT] [nvarchar](3) NOT NULL,
[GUID] [varbinary](16) NOT NULL,
[TG_GUID] [varbinary](16) NULL,
[BP_GUID] [varbinary](16) NULL,
[BP_ORG] [nvarchar](2) NOT NULL,
[BP_DEL] [nvarchar](1) NOT NULL,
[REL_GUID] [varbinary](16) NULL,
[RELATIONSHIP] [nvarchar](6) NOT NULL,
[TYPE_BP_GUID] [nvarchar](1) NOT NULL,
[TYPE_REL_GUID] [nvarchar](1) NOT NULL,
[ROW_NUMBER] [int] NOT NULL,
CONSTRAINT [CRMD_MKTTG_TG_I~0] PRIMARY KEY CLUSTERED
(
[CLIENT] ASC,
[GUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
有什么想法吗?
[CRMD\u MKTTG\u TG\u I~0]
是一个聚集索引。如果禁用它,则无法访问数据(选择、插入、更新、删除数据)
阅读:
- 禁用索引会阻止用户访问该索引
- 和用于基础表数据的聚集索引
- 删除聚集索引并将其转换为堆
- 查询您的表
- 然后创建一个新的聚集索引
ALTER index[CRMD\u MKTTG\u TG\u I~0]REBUILD
?您可以使用REBUILD启用禁用的索引。但是,尽管禁用了聚集索引,但仍然无法查询表,因此会出现OP错误。