ssma列“column”不允许dbnull价值

eit6fx6z  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(261)

我现在正在尝试将mysql数据库迁移到sql server,我在一些论坛上发现他们建议使用ssma(sql服务器迁移助手),但是当我尝试迁移一个有datetime的表时,返回错误“column does not allow dbnull”只迁移不到15%。数据库的名称是相同的(小写),而且我尝试将并行数据迁移模式更改为自定义的零日期列,但我没有找到解决方案。我的sql server数据库是2012
提前谢谢。

4nkexdtk

4nkexdtk1#

出现此错误是因为sql server中的目标表有一个用not null约束定义的列,但mysql中的源表在该列中包含null。您需要修复mysql数据以消除空值,或者更改sqlserver中的表定义以允许空值(前提是该列不是主键的一部分,在主键中不允许空值)

9o685dep

9o685dep2#

下面是表的结构截图-mysql
创建表用户(
用户id int(10)无符号非空自动增量,
创建\u date datetime not null默认值'0000-00-00 00:00:00',
上次登录日期时间不为空默认值“0000-00-00:00:00”,
first\ U name varchar(255)not null default“”,
姓氏varchar(255)不为空默认值“”,
用户varchar(255)不为空默认值“”,
pass varchar(32)not null默认值“”,
\u deleted tinyint(3)unsigned not null默认值“0”,
主键(用户id),
唯一密钥idx\u userlogin(user,pass)
)engine=myisam auto\u increment=49018默认字符集=1
sql服务器
创建表[test].[users]
([user\u id]bigint identity(49018,1)不为空,
[创建日期]日期时间2(0)不为空,
[上次登录]日期时间2(0)不为空,
[名字]varchar(255)不为空,
[姓氏]varchar(255)不为空,
[用户]varchar(255)不为空,
[pass]varchar(32)不为空,
[已删除]tinyint不为空,
)有(数据压缩=无)
当做。

相关问题