Max length of SQL Server instance name?

放肆的年华 提交于 2019-12-09 04:39:18

问题


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.


回答1:


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.

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.




回答2:


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.




回答3:


The only instances where I've seen a character limit are for the SQL Server 2012, and that limit appears to be 16 as others have said. I have 2008 and 2008 R2 instances where the name doesn't seem to have been limited (e.g. MSRS10.MSSQLSERVER_2008), but that could just be that I didn't try for anything longer than 23 or 24 characters. I'm sorry this doesn't provide information from docs, but I hope it's helpful.




回答4:


jl: sp_dropserver 'oldname' go sp_addserver 'newname_greater_than_15_characters','local' go I believe this is for the server name and not the instance name.



来源:https://stackoverflow.com/questions/5260650/max-length-of-sql-server-instance-name

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!