我用的工具是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 约束一起用作表的唯一行标识符。 tinyint、smallint、int、bigint、decimal(p,0) 或 numeric(p,0) 列可以使用 IDENTITY 属性。 每个表只能创建一个标识列。 DEFAULT 关键字和绑定默认值不能用于标识列。 要么同时指定种子和增量,要么都不指定。 如果二者都未指定,则取默认值 (1,1)。
然后是最总要的一句
![]() |
---|