繁体   English   中英

为什么这些字符串在MySQL中不等效但在SQL Server中等效?

[英]Why are these strings not equivalent in MySQL but equivalent in SQL Server?

我正在尝试使用供应商的转换工具将应用程序数据库从MySQL迁移到SQL Server。 当我这样做时,我得到一个唯一的违反约束的错误,该错误表明我试图在SQL Server表的一列中两次写入一个值(“ Canon Inc.”)。

我登录了实时系统(MySQL),然后运行以下查询,并显示了查询结果(零记录)。 这告诉我MySQL在列包含重复值的地方看不到任何记录。

屏幕快照显示SoftwareManufacturer表的NAME列中没有重复的值

但是,当我更广泛地搜索佳能公司时,的确确实找到了两条记录。 但是,当我检查字符串的字符和位长时,它们显然并不完全相同 ,如下所示:

屏幕截图显示了佳能公司的两条记录,具有不同的位和字符长度

这两个字符串之间有什么区别? 我有办法清理吗?

我的猜测是您在第二个佳能公司上有一个尾随的空格。 这将导致字符长度比其他字符长一倍,我敢打赌,SQL Server忽略了尾随空格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM