Максимальная длина имени базы данных в SQL Server

Я пытаюсь выполнить некоторую проверку UI для имени базы данных. Мне говорили из разных мест, что имя базы данных SQL Server хранится в sysname внутри SQL Server. Я также подтвердил, что проверив sys.Databases.

Итак, я делаю свое текстовое поле в пользовательском интерфейсе длиной до 128 символов. Это максимальная длина sysname.

Однако я обнаружил, что в своем выпуске SQL Server 2005 Express, если я ввожу имя базы данных длиной 128 символов, он всегда жалуется

Не удалось создать файл журнала по умолчанию, потому что имя было слишком длинным

Чтобы убедиться, что я могу успешно создать базу данных, я обнаружил, что мне нужно установить максимальный предел на 124 символа.

Теперь у меня вопрос: ограничено ли 124 символа для всех версий SQL Server во всех разных ОС Windows?

Ответ 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')

Ответ 2

Вы не сталкиваетесь с проблемой имен файлов для файлов данных и журналов. Основная операционная система (Windows) накладывает на нее ограничения, и поэтому база данных не может быть создана. Имя базы данных может составлять 128 символов и работает с учетом того, что используемые имена файлов не являются длинными (при использовании SQL Server Management Studio он автоматически генерирует имена файлов на основе имен баз данных, и поэтому они заканчиваются длинными).