从MySQL迁移到SQL-Server并且索引密钥大小太大

时间:2014-04-10 12:14:05

标签: mysql sql sql-server

我使用SSMA工具将数据库从MySQL移动到SQL Server。在调查时我只收到一个错误。显然,一列中的一个索引是大(超过900字节)。

  

M2SS0020:MySql的SQL Server迁移助手错误消息:   索引密钥大小超出(1)估计手动转换时间:1.5   hr(s)1表

所以我试图找到哪个索引是大的。它是一个看起来有点奇怪的文本专栏。但我选择了最大的条目,最大的条目是181(字节)。我用octet_length()来获取大小。

SELECT (octet_length(customer_number)) as customer_length, customer_number 
FROM [table] 
ORDER BY customer_length DESC;

我的问题是这只是一个警告还是一个真正的问题?我的查询是错误的获取索引的大小?我该如何解决?

编辑:

CREATE TABLE `[table]` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `customer_number` text,
  `who` text,
  `what` text,
  `date` datetime DEFAULT NULL,
  `status` text,
   PRIMARY KEY (`id`),
   KEY `index_1` (`customer_number`(8))
) ENGINE=MyISAM AUTO_INCREMENT=4462936 DEFAULT CHARSET=latin1;

另外,非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这取决于数据类型映射。为安全起见,请手动将此列的映射定义为“NVARCHAR(200)”或其他足够大小的映射。这是一个有用的链接:

http://blogs.msdn.com/b/ssma/archive/2011/04/29/converting-from-mysql-to-sql-server-working-with-data-types.aspx