【问题标题】:Max database name length in SQL ServerSQL Server 中的最大数据库名称长度
【发布时间】:2011-02-23 19:38:20
【问题描述】:

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

因此,我将 UI 中的文本框设置为最大长度为 128 个字符。这是sysname 类型的最大长度。

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

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

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

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

【问题讨论】:

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


【解决方案1】:

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

例如,这对我来说很好。

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

【讨论】:

  • 我明白了。我想我现在明白了这个问题。有两个限制 - 一个用于数据库名称,一个用于日志文件。我认为您是对的,因为如果我不指定日志文件名,它会自动将“_log”附加到我的数据库名称作为我的日志文件名。这使我的上限为 124。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 2010-09-30
    • 2022-10-04
    • 2017-05-25
    • 1970-01-01
    相关资源
    最近更新 更多