SQL Server中的最大数据库名称长度

Har*_*wok 17 database sql-server sql-server-2005

我正在尝试对数据库名称进行一些UI验证.从不同的地方我被告知SQL Server数据库名称在SQL Server中存储为sysname.我还通过检查sys.Databases来验证.

所以,我让UI中的文本框长度为128个字符.这是sysname类型的最大长度.

但是,我发现在我的SQL Server 2005 Express版本中,如果我输入一个长度为128个字符的数据库名称,它总会抱怨

无法创建默认日志文件,因为名称太长

为了确保我能够成功创建数据库,我发现我需要将最大限制设置为124个字符.

我现在的问题是,对于所有不同Windows操作系统上的所有SQL Server版本,是否有124个字符限制?

Mar*_*ith 16

日志文件名不需要包含数据库名称.

这对我来说很好.例如.

CREATE DATABASE [AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA] ON  PRIMARY 
( 
NAME = N'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', 
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\A128.mdf')
 LOG ON 
( 
NAME = N'A128_log', 
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\A128_log.LDF')
Run Code Online (Sandbox Code Playgroud)

  • 我知道了.我想我现在明白了这个问题.有两个限制 - 一个用于数据库名称,另一个用于日志文件.我认为你是对的,因为如果我没有指定日志文件名,它会自动将"_log"附加到我的数据库名称作为我的日志文件名.这使我的最大限制124. (3认同)

And*_*rin 5

您是否遇到数据和日志文件的文件名问题?基础操作系统(Windows)对它进行了限制,因此无法创建数据库。数据库名称的长度可能为128个字符,并且在使用的文件名不是太长的情况下可以使用(当使用SQL Server Management Studio时,数据库名称会根据数据库名称自动生成文件名,因此最终会很长)。