无法更改列 'xxx',因为它是 'REPLICATED'。
当我在更新表的列名称时,遇到报错‘无法更改列 ‘name’,因为它是 ‘REPLICATED’。’
查看数据库服务器,并无相关的发布和订阅存在。在网上搜索相关错误信息,发现有网友之前同样遇到过这种报错,原因是之前进行过订阅复制,后续删除时没有删除干净,需要使用EXEC SP_REMOVEDBREPLICATION ‘发布数据库名称’来强制删除发布。
在数据库中运行上述语句后,更改仍旧报错,且报错信息还是如上,这说明这个报错复制没有关系。
后来发现原因是该表开启了CDC,无法变更,只能将CDC关闭,带变更完成后再重新打开。
我的分析思路如下:
1.在其他数据库中执行ALTER sp_rename操作,成功,说明不是实例的问题,主要操作应该定位到数据库级别。
2.在数据库中新建表后进行sp_rename操作,成功,说明不是数据库整体的问题,将问题根源定位到了表级别。
3.比较原有表与新建表的差异:1.表结构与数据不同(这个应该不是问题) 2.原有表开启了CDC,新表没有。突然想到之前为数据库开启CDC时,有遇到报错,报错原因即为该库的replicated属性为1。
由此,我猜测变更失败可能和表开启CDC有关系。
测测试库还原报错如下:
--建表create table test (id int not null primary key,name varchar(10) null)--开启cdcEXEC sys.sp_cdc_enable_dbexec sys.sp_cdc_enable_table @source_schema='dbo',@source_name='test', @role_name=N'cdc_Admin', @capture_instance=DEFAULT
--变更exec sp_rename 'test.name','first_name','column'
发现果然报错。
若想变更,只能暂时停止CDC.
--停止捕获
EXEC sys.sp_cdc_stop_job @job_type = 'capture'
使用上述语句停止捕获后仍旧失败,看来只能先关掉CDC在重新开启了。
--关闭CDCEXEC sys.sp_cdc_disable_table @source_schema = 'dbo', @source_name = 'test', @capture_instance = 'all'--变更exec sp_rename 'test.name','first_name','column'--开启CDCexec sys.sp_cdc_enable_table @source_schema='dbo', @source_name='test', @role_name=N'cdc_Admin', @capture_instance=DEFAULT
更改成功。
经测试后发现,开启CDC后可以添加字段,可以更改字段类型,就是无法给字段重命名。
无法更改列 'xxx',因为它是 'REPLICATED'。相关推荐
- 在mysql中更改数据类型_如何在MySQL中更改列的数据类型?
如果要将某个类型的所有列更改为其他类型,可以使用如下查询生成查询: select distinct concat('alter table ', table_name, ' modify ', col ...
- 【转】列“xxx”不属于表 Table asp.net
[转]列"xxx"不属于表 Table asp.net SqlConnection 不要用全局或静态或单例模式 , 否则会出现不同进程进下共用connection的情况 , 特别是 ...
- python更改数据框指定位置的数据_python – 移动数据框列并更改列顺序
我有一个名为df的数据框,其中包含以下列数据标题: date A B C D E F G H I 07/03/2016 2.08 1 NaN NaN 1029 2 2.65 4861688 -0.03 ...
- Microsoft Excel 教程:如何在 Excel 中更改列宽或行高?
欢迎观看 Microsoft Excel 教程,小编带大家学习 Microsoft Excel 的使用技巧,了解如何在 Excel 中更改列宽或行高. 可以手动调整列宽或行高,或者自动调整列和行的大小 ...
- sql 更改列数据类型_SQL查询更改列数据类型
sql 更改列数据类型 Datatype of the column in SQL can be changed using the ALTER TABLE command. It can also ...
- pyspark 修改python版本_python – Pyspark从日期到字符串更改列的类型
我有以下数据帧: corr_temp_df [('vacationdate', 'date'), ('valueE', 'string'), ('valueD', 'string'), ('value ...
- python改变列的数据类型_在Pandas中更改列的数据类型【方法总结】
先看一个非常简单的例子: a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0']] df = pd.DataFrame(a) 有什 ...
- mysql 设置日期时间格式_MySQL:更改列类型和日期时间格式
我的数据库当前将"日期"列设置为varchar(20),我的日期格式如下: 1/13/2015 20:00 我想在数据库上运行更新以将列类型更改为datetime并将当前日期的格式 ...
- python改变列的数据类型_python – Pandas:更改列的数据类型
您可以使用 pd.to_numeric(在版本0.17中引入)将列或Series转换为数字类型.该函数还可以使用apply应用于DataFrame的多个列. 重要的是,该函数还接受一个错误关键字参数, ...
最新文章
- protobuf-2.6.1生成java文件
- [PHP] 算法-数组重复数字统计的PHP实现
- Nginx学习之六:Nginx配置操作导航
- 自动化测试的框架介绍和选择
- rac san+oracle_Oracle11g1+RAC+install+for+CentOS5(ASM+to+FC+SAN)_IT168文库
- delete hive_Hive高级调优
- PANIC: Could not open: AVD
- [C#] C#访问数据库的代码(Access版本)
- LCD12864图形点阵液晶显示模块中文资料介绍
- 那些年,我们一起追过的球队
- 百度贴吧五年内流失九成用户;罗永浩吐槽苹果新品:更丑更贵更胡来;进互联网大厂毕业生5年后7成人离开 | EA周报...
- 计算机怎么搜索程序和文件格式,PDF软件如何快速搜索与查找文件?
- 如何在Android上使用音乐流服务作为警报
- 2020最新版前端学习路线图
- PS4游戏将登陆PC:一曲属于主机的悲歌
- 新书推荐 |《机器学习即服务:将Python机器学习创意快速转变为云端Web应用程序》...
- 吴式太极拳老架(原乐志先生授)(2008.04.09修改)
- python json文件操作_JSON文件及Python对JSON文件的读写操作
- 3000字英文随笔(挽救下语感)
- mysql删除工具_有没有mysql卸载工具
热门文章
- Allegro转PADS格式
- box-shadow实现四周阴影
- java eden s0 s1_不是吧!做了两年java还没弄懂JVM堆?进来看看你就明白了
- 如何使用 JavaScript 在AnyChart中构建词树图?
- 大数据Spark Structured Streaming
- 时寒冰说:经济大棋局,我们怎么办 读书笔记
- bzoj4890: [Tjoi2017]城市
- 如何在 R 中使用 Fisher 的最小显着性差异 (LSD)
- 雾计算-思科白皮书 原文+翻译 | 带你全面官方解读雾计算
- 水库雨水情自动测报系统-设备介绍