SQL Server 2012-删除select子句中的右空格

SQL Server 2012-删除select子句中的右空格,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我们将数据库从IBMInformix更改为SQLServer。我们的ERP作为默认行为保存所有数据,并使用正确的空格填充varchar的列大小 Informix没有返回这些正确的空间,但现在使用SQL Server,它会为所有选择返回这些正确的空间,这是一个大问题 我尝试使用设置ANSI_PADDING OFF,但仍然得到了正确的空格 有人知道我的问题的解决办法吗 我想删除所有selects中所有varchar列的所有正确空格 tks.使用RTRIM怎么样 SELECT RTRIM(Column

我们将数据库从IBMInformix更改为SQLServer。我们的ERP作为默认行为保存所有数据,并使用正确的空格填充
varchar
的列大小

Informix没有返回这些正确的空间,但现在使用SQL Server,它会为所有选择返回这些正确的空间,这是一个大问题

我尝试使用
设置ANSI_PADDING OFF
,但仍然得到了正确的空格

有人知道我的问题的解决办法吗

我想删除所有selects中所有varchar列的所有正确空格


tks.

使用
RTRIM
怎么样

SELECT RTRIM(ColumnName)
FROM tableName
如果要更新这些列以删除尾部空白

UPDATE tableName
SET columnName = RTRIM(columnName)

使用RTRIM()函数或将数据类型更改为varchar()或nvarchar()

您是否尝试过按照下面的说明修剪查询中的空白


如果我理解您的意思,您的应用程序中有所有的SQL代码,您不想经历并更改这些代码,然后将应用程序推出。如果您不想这样做,除了创建某种劫持sql server调用并转换它们的应用程序之外,您将需要清理数据。

如果您的ERP需要保留空间以使其正常工作,我所能看到的唯一解决方案是将所有选定查询更新为数据


这可能只是更改数据库系统所要付出的代价。

您在哪里看到这些空间?添加这些空格是为了使列对齐,还是在将数据导出到文本文件时?如果它们在底层数据中,那么您应该修复数据库中的值。如果我这样做,我将不得不更改所有系统中的所有源代码。我需要一种方法,使所有选择返回的数据没有正确的空格。tks。