SQL Server 2008r2外键允许空间

时间:2014-09-30 16:09:35

标签: sql-server

在我们的数据库中,我们将两个表链接在一起。 Table A有一个主键,Table B有一个外键返回Table A的主键字段。这是一对多的关系。

这是我的问题:

如果我通过在文本结尾后添加空格来编辑Table B的外键字段,则不会阻止它。这会产生重复值的错觉。 (防止添加任何其他字符)。

如何确保不再发生这种情况,因为它会弄乱我们的报告?

1 个答案:

答案 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