在我们的数据库中,我们将两个表链接在一起。 Table A
有一个主键,Table B
有一个外键返回Table A
的主键字段。这是一对多的关系。
这是我的问题:
如果我通过在文本结尾后添加空格来编辑Table B
的外键字段,则不会阻止它。这会产生重复值的错觉。 (防止添加任何其他字符)。
如何确保不再发生这种情况,因为它会弄乱我们的报告?
答案 0 :(得分:0)
这可能看起来很奇怪,但这是字符串比较应该如何工作,由SQL-92标准定义并由SQL Sever实现。在我学到这个痛苦的教训之前,我被一些神秘的虫子咬了。请参阅Microsoft支持:How SQL Server Compares Strings with Trailing Spaces。
Oracle不会以这种方式比较字符串,这是人们从Oracle迁移到SQL Server的常见问题。
如果这仅影响您的报告,我建议您修剪SELECT
子句中的字符串:
SELECT LTRIM(RTRIM(MyColumn)) FROM MyTable