为什么bcp在列包含空字符串时输出null而在列为空时输出空字符串?

Dav*_*yes 8 sql sql-server null bcp

这让我感到非常奇怪,我在发现这个问题之前花了一些时间检查代码中的错误

"将数据库表或视图中的副本输出到文件.如果指定现有文件,则会覆盖该文件.提取数据时,请注意bcp实用程序将空字符串表示为null,将空字符串表示为空字符串. " (来自http://msdn.microsoft.com/en-us/library/ms162802.aspx)

显然,这让我可以解决我的问题,但任何人都可以想到或者有人知道为什么会出现这种情况的原因吗?

gbn*_*gbn 9

已经有一段时间了,但我确信这是SQL Server 6.5的向后兼容性/遗留问题

SQL Server 6.5无法存储空字符串:总有一个空格.这改变了SQL 7

所以,'' -> NULL' ' -> ''是从一个古老的历史观点是正确的.