我需要知道以下版本的SQL Server实例名称的最大字符长度(如果它们之间存在差异。)
(我正在开发一个通过DMO / SMO API与SQL Server通信并需要验证用户输入的应用程序。)
经过大量谷歌搜索和BOL搜索后,我无法找到明确的答案。我找到了论坛问题和回复(在其他较小的网站上),但这些回复中的值范围为16到128个字符,没有提供支持文档或链接。
这似乎应该是一个简单的发现,但它已经躲过了我。任何帮助将不胜感激。
答案 0 :(得分:15)
SQL Server的实例名称限制为16个字符
http://msdn.microsoft.com/en-us/library/ms143531(v=SQL.105).aspx
它没有在线列出SQL Server 2000,但是查看我为SQL Server 2000安装的BOL,它也限制为16个字符。
修改强>
使用此屏幕添加和维护Microsoft®SQLServer™2000的实例。
选项强>
默认强>
选中此项后,将安装SQL Server 2000的默认实例。单击“下一步”继续安装过程。
清除后,您可以安装或维护SQL Server 2000的命名实例。
注意如果未启用此复选框,则安装程序已在此计算机上检测到SQL Server的默认实例。默认实例可以是SQL Server 6.5,SQL Server 7.0版的安装,也可以是已安装的SQL Server 2000的默认实例。任何时候只能安装一个SQL Server(任何版本)作为默认实例。有关详细信息,请参阅SQL Server的多个实例。
实例名称
输入新实例名称或要维护的实例名称。查看并遵循实例名称的规则。
重要建议将实例名称保留为少于10个字符。实例名称可以出现在各种SQL Server和系统工具的用户界面中;较短的名字更具可读性。
**实例命名规则**
实例名称不区分大小写。
实例名称不能是术语Default或MSSQLServer。
实例名称必须遵循SQL Server标识符的规则,并且不能是保留关键字。
实例名称限制为16个字符。
实例名称中的第一个字符必须是字母,&符号(&),下划线(_)或数字符号(#)。可接受的字母是Unicode标准2.0定义的字母,包括拉丁字符a-z和A-Z,以及其他语言的字母字符。
后续字符可以是:
Unicode标准2.0中定义的字母。
来自Basic Latin或其他国家/地区脚本的十进制数字。
美元符号($),数字符号(#)或下划线(_)。
实例名称中不允许使用嵌入空格或特殊字符。反斜杠(),逗号(,),冒号(:)或者符号(@)都不是。
警告只有在当前MicrosoftWindows®代码页中有效的字符才能在SQL Server 2000中的实例名称中使用。如果使用当前代码页下不支持的Unicode字符,发生错误。
答案 1 :(得分:2)
我在SQL 2008 R2中的经验是:
Windows Server 2008 R2 NetBIOS具有15个字符的限制。
如果您希望SQL Server默认实例名称超出此范围(@@ SERVERNAME),则必须执行以下操作:
sp_dropserver'oldname' 走 sp_addserver'newname_greater_than_15_characters','local' 去
重新启动MSSQLService,您的新名称将生效。 Sysname是与函数和系统存储过程一起使用的数据类型。
答案 2 :(得分:0)
我见过字符限制的唯一实例是针对SQL Server 2012,并且该限制似乎是16,正如其他人所说的那样。我有2008和2008 R2实例,其名称似乎没有受到限制(例如MSRS10.MSSQLSERVER_2008),但这可能只是因为我没有尝试超过23或24个字符的任何内容。对不起,这不提供来自文档的信息,但我希望它有用。
答案 3 :(得分:-1)
jl: sp_dropserver'oldname'转到sp_addserver'newname_greater_than_15_characters','local'转到 我相信这是用于服务器名称而不是实例名称。