我正在尝试对数据库名称进行一些UI验证。从不同的地方我被告知SQL Server数据库名称在SQL Server中存储为sysname。我还通过检查sys.Databases验证了这一点。
因此,我在UI中创建了长度为128个字符的文本框。这是sysname
类型的最大长度。
但是,我发现在我的SQL Server 2005 Express版中,如果我输入一个长度为128个字符的数据库名称,它总会抱怨
无法创建默认日志文件,因为名称太长
为确保我能成功创建数据库,我发现需要将最大限制设置为124个字符。
我现在的问题是,对于所有不同Windows操作系统上的所有SQL Server版本,是否有124个字符限制?
答案 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>