Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Max length of SQL Server instance name?

I need to know the maximum character length for the name of an instance of a SQL Server for the following versions (if there is a difference between them.)

  • SQL Server 2000
  • SQL Server 2005
  • SQL Server 2008
  • SQL Server 2008 R2

(I am working on an application that will communicate with SQL Server via the DMO/SMO APIs and need to validate user input.)

After much Googling and BOL searching I have not been able to find a definitive answer. I have found forum questions and responses (on other, lesser sites) but the values in those responses have ranged from 16 to 128 characters and none provided supporting documentation or links.

It seems that this should be an easy find but it has eluded me. Any help would be much appreciated.

like image 917
Paul Sasik Avatar asked Mar 10 '11 14:03

Paul Sasik


2 Answers

Instance names for SQL Server are limited to 16 characters

http://msdn.microsoft.com/en-us/library/ms143531(v=SQL.105).aspx

It doesn't list SQL Server 2000 online but looking at the BOL that I have installed for SQL Server 2000 it is also limited to 16 characters.

SQL Server 2000 - Books Online

EDIT

Use this screen to add and maintain instances of Microsoft® SQL Server™ 2000.

Options

Default

  • When selected, a default instance of SQL Server 2000 is installed. Click Next to proceed with the install process.

  • When cleared, you can install or maintain a named instance of SQL Server 2000.

    Note If this check box is not enabled, Setup has detected a default instance of SQL Server on this computer. The default instance could be an installation of SQL Server 6.5, SQL Server version 7.0, or it could be the default instance of SQL Server 2000, already installed. Only one installation of SQL Server, any version, can be the default instance at any one time. For more information, see Multiple Instances of SQL Server.

Instance Name

Enter a new instance name, or the name of the instance to maintain. Review and follow the rules for instance names.

Important It is recommended that instance names be kept to less than 10 characters. Instance names can appear in the user interface of various SQL Server and system tools; shorter names are more readable.

**Instance Naming Rules **

  • An instance name is not case-sensitive.

  • An instance name cannot be the terms Default or MSSQLServer.

  • Instance names must follow the rules for SQL Server identifiers and cannot be reserved keywords.

  • Instance names are limited to 16 characters.

  • The first character in the instance name must be a letter, an ampersand (&), an underscore (_), or a number sign (#). Acceptable letters are those defined by the Unicode Standard 2.0, which includes Latin characters a-z and A-Z, in addition to letter characters from other languages.

  • Subsequent characters can be:

    • Letters as defined in the Unicode Standard 2.0.

    • Decimal numbers from either Basic Latin or other national scripts.

    • The dollar sign ($), a number sign (#), or an underscore (_).

  • Embedded spaces or special characters are not allowed in instance names. Neither is the backslash (), a comma (,), a colon (:), or the at sign (@).

Warning Only characters that are valid in the current Microsoft Windows® code page can be used in instance names in SQL Server 2000. If a Unicode character not supported under the current code page is used, an error occurs.

like image 88
codingbadger Avatar answered Oct 01 '22 03:10

codingbadger


My experience in SQL 2008 R2 is:

Windows Server 2008 R2 NetBIOS has a 15 character limit.

If you want a SQL Server default instance name beyond this (@@SERVERNAME) then you will have to do the following:

sp_dropserver 'oldname' go sp_addserver 'newname_greater_than_15_characters','local' go

Restart the MSSQLService and your new name takes effect. Sysname is the datatype in play with the function and system stored procedures.

like image 45
jl. Avatar answered Oct 01 '22 03:10

jl.