2019-04-20 孙小北

SQL语句修改主键(主码)数据类型

项目的结构并不是一成不变的,随着框架的优化,可能会改变数据库表结构。本次项目调整过程中,需要将主键类型由nvarchar转换成bigint

修改数据库表中主键类型并不是像普通字段那么轻松:

alter table BsOrg alter column BsOrgID bigint

--消息 5074,级别 16,状态 1,第 3 行对象'PK_BSORG' 依赖于 列'BsOrgID'。
--消息 5074,级别 16,状态 1,第 3 行对象'FK_BSSTAFF2BSORG_REF_BSORG' 依赖于 列'BsOrgID'。
--消息 5074,级别 16,状态 1,第 3 行对象'FK_BSORG2ROLE_REF_BSORG' 依赖于 列'BsOrgID'。
--消息 5074,级别 16,状态 1,第 3 行对象'FK_BSORG2ORGTYPE_REF_BSORG' 依赖于 列'BsOrgID'。
--消息 4922,级别 16,状态 9,第 3 行由于一个或多个对象访问此 列,ALTER TABLE ALTER COLUMN BsOrgID 失败。

如果修改的字段是普通属性,那么或许就修改成功了,但是对于主键就束手无策了。如果数据表已有数据,那就更完完了。小北使用MSSQL 2016 ,修改主键类型采取步骤如下:

(1)创建临时表,备份源数据







编辑:孙小北

本文地址: https://www.xiaowangyun.com/wyblog/detail/?id=1075

版权归属: www.xiaowangyun.com   转载时请以链接形式注明出处

0 条评论

快来评论

物以类聚

最新评论

2017-10-06

一辈子不长,只有珍惜了,才不至于后悔。

2017-10-06

懂得感恩,才能走得更远。

标签云

归档

取消

感谢您的支持,您的每一次打赏都是一次鼓励!

扫码支持
每一次支持,都是不懈的动力

打开支付宝扫一扫,即可进行扫码打赏哦