BUG: Upgrade of Logins with Default Language Francais Cause Error 15033 (264163)



The information in this article applies to:

  • Microsoft SQL Server 7.0
  • Microsoft SQL Server 2000 (all editions)

This article was previously published under Q264163
BUG #: 57716 (SQLBUG_70)

SYMPTOMS

When you upgrade a SQL Server 6.5 database to SQL Server 7.0, the Upgrade Wizard fails to create some existing logins. The upgrade log file, CONVLOAD2.SQL, contains the following error message:
15033 'Francais' is not a valid official language name.

CAUSE

In the syslanguages system table, the name of the French language has changed between SQL Server 6.5 and SQL Server 7.0. In SQL Server 6.5, it was called "Francais" and in SQL Server 7.0 it is called "Franais" .

NOTE: The "" character is character 0231.

The syslogins table contains the name of the default language for each user. When the Upgrade Wizard tries to create the login on SQL Server 7.0, it uses the name found in the SQL Server 6.5 syslogins table. Because the two names do not match between SQL Server 6.5 and SQL Server 7.0, the login cannot be created and the error message described in the "Symptoms" section of this article is added in the CONVLOAD2.SQL log file.

WORKAROUND

Before you run the Upgrade Wizard, modify the existing SQL Server 6.5 logins in the master database in order to:
  • Change the language name in the syslanguages table from Francais to French and leave Francais as the language alias.
  • Change all the existing logins default language to French.
You can run the following script to make these changes:

NOTE: Due to a limitation in the Microsoft Knowledge Base, extended characters cannot be shown in CODE sections. Therefore, in the following script, please replace "fran[char 0231]ais" with "franais" .
set nocount on
go
sp_configure "allow",1
go
reconfigure with override
go
update syslanguages set name = 'french',alias = 'francais' where langid=1
go

declare @name varchar(255)
declare @lang varchar(255)

declare logincurs cursor for select name,language from syslogins
open logincurs

fetch next from logincurs into @name,@lang
while @@fetch_status=0
	begin
		if @lang = 'francais' or @lang='fran[char 0231]ais' 
			exec("sp_defaultlanguage '"+@name+"','French'")
		fetch next from logincurs into @name,@lang
	end

close logincurs
deallocate logincurs

go
sp_configure "allow",0
go
reconfigure with override
go
				

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

Modification Type:MajorLast Reviewed:10/17/2003
Keywords:kbBug kbpending KB264163