2011-02-23 2 views
14

데이터베이스 이름에 대해 일부 UI 유효성 검사를 수행하려고합니다. 다른 장소에서 SQL Server 데이터베이스 이름이 sysname으로 SQL Server에 저장되었다는 사실을 들었습니다. 또한 sys.Databases을 확인하여 확인했습니다.SQL Server의 최대 데이터베이스 이름 길이

그래서 UI에서 내 텍스트 상자의 길이를 최대 128 자로 만듭니다. 최대 길이는 sysname입니다.

그러나, 나는 긴 128 자와 데이터베이스 이름을 입력하면 내 SQL 서버 2005 익스프레스 에디션에서, 항상 불평 것을 발견

이름이 너무 오래했기 때문에 기본 로그 파일을 생성 할 수 없습니다

성공적으로 데이터베이스를 만들 수 있도록 최대 제한을 124 자로 설정해야합니다.

지금 내 질문은 모든 다른 Windows OS에서 모든 버전의 SQL Server에 대해 124 자 제한이 적용되는지 여부입니다.

+1

유용한 정보 : [Windows 최대 경로 길이 제한] (http://msdn.microsoft.com/en-us/library/aa365247%28v=vs.85%29.aspx#maxpath) – drudge

+0

'CREATE'데이터베이스 명령문에있는 어떤 이름의 로그 파일. 그것은 DB 이름 ... –

답변

14

로그 파일 이름에는 데이터베이스 이름이 포함될 필요가 없습니다.

예를 들어 제대로 작동합니다.

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

을 포함 할 필요가 없습니다. 나는 지금 문제를 이해한다고 생각한다. 데이터베이스 이름과 로그 파일의 두 가지 한계가 있습니다. 로그 파일 이름을 지정하지 않으면 자동으로 로그 파일 이름으로 "_log"를 데이터베이스 이름에 추가하기 때문에 그것이 맞다고 생각합니다. 그건 내 최대 한도를 만든다. –

3

데이터 및 로그 파일의 파일 이름 문제를 해결하지 않습니까? 기본 운영 체제 (Windows)는 이에 제한을 설정하므로 데이터베이스를 작성할 수 없습니다. 데이터베이스 이름은 128 자일 수 있으며 사용 된 파일 이름이 길지 않아야합니다 (SQL Server Management Studio를 사용할 때 데이터베이스 이름을 기반으로 파일 이름을 자동으로 생성하므로 결국 길어집니다).