BUG: Convert Defaults to 30 When No Length Is Given (80640)



The information in this article applies to:

  • Microsoft SQL Server 4.2x

This article was previously published under Q80640
BUG#: NT:  885 (4.2)
		

SYMPTOMS

A statement of the form,
   select convert(varchar, <column>) from <table>,
				

where <column> is a char, varchar, or text column in <table>, returns the first 30 characters of <column>. The documentation for the CONVERT function in the Microsoft SQL Server Transact-SQL Reference states:
   "If no length is specified when converting to varchar or varbinary
   datatypes, the data adapts to any size necessary."
				

That is, if <column> is of type char(100), the above text implies that the above SELECT statement must return all the characters in <column>.

CAUSE

The value of 30 is incorrectly hard coded as the default when no length is specified as the default.

STATUS

Microsoft has confirmed this to be a problem in SQL Server version 4.2.

Modification Type:MinorLast Reviewed:2/14/2005
Keywords:kbBug kbprogramming KB80640