我有一个用户使用的软件有时会将 UNIT 的 ID 作为整数(例如 1000)发回,有时会附加一个小十进制值(例如 1000.001)。该软件会自动生成具有“真实”数据类型的 MSSQL (2016 SP1) 表,并且“最重要”使此 UNIT 列成为主键的一部分。这会导致数据输入端和报告端出现问题。
我意识到这确实是软件的一个“错误”,但我试图在数据库方面提供帮助。我已经在沙盒区域证明我可以将“真实”数据类型更改为“int”,这不会导致现有数据丢失数据,并且每个输入场景都显示任何输入的十进制值将在“int”列(未四舍五入)。
我的问题是,“当输入到“int”数据类型时,SQL Server 是否总是可靠地截断十进制值(我们没有办法深入到打包的应用程序中并强制将其转为 ROUND)?是否有任何情况会出错,或引起问题?” 我在任何地方都找不到此文档。