FIX: ANSI_PADDING Ignores Using Subquery in Insert

Article translations Article translations
Article ID: 240888 - View products that this article applies to.
This article was previously published under Q240888
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 18825 (SQLBUG_65)
Expand all | Collapse all

SYMPTOMS

The ANSI_PADDING attribute of a CHAR column is ignored when you use a subquery in an INSERT statement. The subquery statement uses two tables to copy one table to another. For the source table, ANSI_PADDING is set OFF and for the destination table ANSI_PADDING is set ON. For an example of this behavior, see the MORE INFORMATION section of this article.

WORKAROUND

To work around this problem, use the CONVERT function in the subquery for the ANSI_PADDING attribute to take effect. An example of this would be:
insert into tabpo select convert( char(10), col01 ) from tabpf
				

STATUS

Microsoft has confirmed this to be a problem in SQL Server version 6.5. This problem has been corrected in the Post Service Pack 5a Update for Microsoft SQL Server version 6.5. To install the Post Service Pack 5a Update, you must have either SQL Server 6.5 SP5 or SP5a installed.

For information about how to download and install the SQL Server 6.5 Service Pack 5a, refer to the following article in the Microsoft Knowledge Base:
197177 INF: How to Obtain SQL Server 6.5 Service Pack 5a
If you already have SQL Server 6.5 SP5 or SP5a installed, you can download the Post SP5a Update from the following article in the Microsoft Knowledge Base:
274036 INF: How to Obtain SQL Server 6.5 Post Service Pack 5a Update
For more information, contact your primary support provider.

MORE INFORMATION

The following script reproduces the problem:
set ansi_padding on
go
create table tabpo ( col01 char(10) null )
go
insert into tabpo values ( 'A' )
go

select len(col01), col01+'#' from tabpo
go

set ansi_padding off
go
create table tabpf ( col01 char(10) null )
go
insert into tabpf values ( 'A' )
go

select len(col01), col01+'#' from tabpf
go

insert into tabpo select col01 from tabpf
go

select len(col01), col01+'#' from tabpo
go
				
The results of the above script are:
(1 row(s) affected)

                            
----------- ----------- 
10          A         # 

(1 row(s) affected)


(1 row(s) affected)

                            
----------- ----------- 
1           A#          

(1 row(s) affected)


(1 row(s) affected)

                            
----------- ----------- 
10          A         # 
1           A#          

(2 row(s) affected)
				

Properties

Article ID: 240888 - Last Review: October 22, 2013 - Revision: 4.0
APPLIES TO
  • Microsoft SQL Server 6.5 Service Pack 5a
Keywords: 
kbnosurvey kbarchive kbbug kbfix KB240888

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com