【发布时间】:2021-08-07 06:18:39
【问题描述】:
正如标题中提到的,我一直在尝试在我的事务复制中包含非聚集索引。
创建发布时,我已在[为所有表格文章设置属性]中选中“复制非聚集索引”选项
但是在我完成发布创建后,当我再次检查发布属性时,“复制非聚集索引”选项更改为默认值false。无论我尝试改变多少次,它都不会改变。
我的下一个尝试是删除我的虚拟机并从头开始重新创建虚拟机。但它仍然不允许我复制非聚集索引。
然后,我想这可能是我在 VM 中使用的 SQL Server 版本的错误。所以我尝试将整个数据库复制到我的本地主机中,但问题仍然存在
- My VM SQL Server 版本:SQL Server 2012 标准版
- 我的本地主机版:SQL Server 2019 开发版
最后我发现有人这么说
使用以下代码:快照中的存储过程将 申请失败:
在 [dbo] 上创建非聚集索引 [IX_TestTable]。#TestTable
但是,稍微改变语法会导致存储过程 创建没有问题:
ALTER TABLE dbo.#TestTable 添加约束 IX_TestTable 唯一 非集群(ID)
但我无法在生产环境中更改索引/重新创建索引。有什么解决办法吗?
- 更新
我要复制的是我的整个数据库。包括我所有的表格和存储过程。所以我的表不是临时表
【问题讨论】:
-
您正在尝试在临时表上创建 NC 索引。临时表不会被复制。
-
嗨@MitchWheat 抱歉,这只是我复制的答案。它不是我的桌子。我的桌子是普通的桌子,不是诱惑的。那么您的意思是“那个”答案不适用于我的情况吗?因为我的表不是临时表?
标签: sql-server replication transactional-replication