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

时间:2011-02-23 19:38:21

标签: sql-server database sql-server-2005

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

因此,我在UI中创建了长度为128个字符的文本框。这是sysname类型的最大长度。

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

  

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

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

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

2 个答案:

答案 0 :(得分:15)

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

例如,这对我来说很好。

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')

答案 1 :(得分:4)

您是否遇到过数据和日志文件的文件名问题?底层操作系统(Windows)对其进行限制,因此无法创建数据库。数据库名称可能长度为128个字符,并且假设使用的文件名不长(使用SQL Server Management Studio时,它会根据数据库名称自动生成文件名,因此最终会很长)。 / p>