【数据库】从mysql迁移到sqlserver

本文详细记录了使用Navicat Premium从MySQL迁移数据到SQLServer的过程,包括遇到的数据类型不兼容问题、主键与自增列的调整,以及解决方法。重点介绍了如何处理无法直接迁移的表,如修改表的主键和自增属性,以及在SQLServer中设置标识列的技巧。
摘要由CSDN通过智能技术生成

我用的工具是navicat premium

右键mysql的数据库选择数据传输


只能选择表,其他默认灰色不能选择(估计是某些函数或者类型不支持造成的)。

在高级选项卡里做进一步设置,确定没干扰的话可以去掉一些勾提升执行效率(如不使用事务)。

右边选择远程数据库后,点击开始。

第一次执行出错,有三张表传输失败,提示是类型不兼容。选择出错的表之后的表,继续执行,直到传输完毕。

剩下不兼容的三张表,只能手动导了。


出现问题:进入sqlserver数据库一看,发现新数据库的表的主键和自增都没了

下面是修改表的公式,找找看,是否有修改为自增字段的方法。



persisted允许您对具有确定性、但不精确的计算列创建索引,建索引的时候用的


drop not for replication好像有用,测试下

alter table t_role alter column drop not for replication

报错,语法不对,好吧,用不来,跳过。


最后,去官网https://msdn.microsoft.com/zh-cn/library/ms187742.aspx中找了下标识列的资料:

IDENTITY
指定新列为标识列。 SQL Server 数据库引擎为该列提供唯一的增量值。 当您向现有表中添加标识符列时,还会将标识号添加到具有种子值和增量值的现有表行中。无法保证行的更新顺序。 也会为添加的任何新行生成标识号。

标识列通常与 PRIMARY KEY 约束一起用作表的唯一行标识符。 tinyintsmallintintbigintdecimal(p,0) 或 numeric(p,0) 列可以使用 IDENTITY 属性。 每个表只能创建一个标识列。 DEFAULT 关键字和绑定默认值不能用于标识列。 要么同时指定种子和增量,要么都不指定。 如果二者都未指定,则取默认值 (1,1)。

然后是最总要的一句

System_CAPS_ICON_note.jpg 注意
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值