我们将数据库从 IBM Informix 更改为 SQL Server。varchar
我们的 ERP 作为默认行为保存所有数据,其中正确的空格填充's的列大小。
Informix 没有返回这些正确的空格,但现在使用 SQL Server,它为所有选择返回这些正确的空格,这是一个大问题。
我尝试使用SET ANSI_PADDING OFF
,但我仍然得到正确的空间。
有人知道我的问题的解决方案吗?
我想删除所有选择中所有 varchar 列的所有正确空格。
tks。
我们将数据库从 IBM Informix 更改为 SQL Server。varchar
我们的 ERP 作为默认行为保存所有数据,其中正确的空格填充's的列大小。
Informix 没有返回这些正确的空格,但现在使用 SQL Server,它为所有选择返回这些正确的空格,这是一个大问题。
我尝试使用SET ANSI_PADDING OFF
,但我仍然得到正确的空间。
有人知道我的问题的解决方案吗?
我想删除所有选择中所有 varchar 列的所有正确空格。
tks。
如果我理解你的话,你的应用程序中有所有的 SQL 代码,你不想经历并改变它并将应用程序推出。如果您不想这样做,除了创建某种劫持 sql server 调用并转换它们的应用程序之外,您还需要清理数据。
如果您的 ERP 需要保留空间以使其正常运行,我能看到的唯一解决方案是将所有选择查询更新为RTRIM
数据。
这可能只是您更改数据库系统所必须付出的代价。
如何使用RTRIM
?
SELECT RTRIM(ColumnName)
FROM tableName
如果要更新这些列以删除尾随空格,
UPDATE tableName
SET columnName = RTRIM(columnName)
使用 RTRIM() 函数或将数据类型更改为 varchar() 或 nvarchar()
您是否尝试过修剪查询中的空格,如下所示?