2010-06-21 3 views
2

데이터베이스를 만들 때 에서 간단한 sql 쿼리를 실행하는 데 문제가 있습니다. 그 이유를 모르겠습니다. 데이터베이스를 만들 SQL Server 쿼리에서 데이터베이스 이름에 숫자를 포함하면 오류가 발생합니다.

내가이 쿼리를

CREATE DATABASE 4444-virtual2 

를 실행

는이 오류를 근처

의 구문이 잘못되었습니다 '4444'를받을 수 있습니다.

특히 이름에 숫자 값이있는 데이터베이스 테이블을 만드는 경우 지정해야하는 것이 있습니까? 아니면 무언가를 잊고 있습니까?

답변

6

데이터베이스 이름은 start with a letter, underscore, at sign or number sign해야합니다

첫 번째 문자는 다음 중 하나 여야합니다

  • 편지를 유니 코드 표준 3.2에 의해 정의 된 바와 같다. 유니 코드 정의 에는 a부터 z까지의라틴 문자 A부터 Z까지 의 문자와 기타 의 문자가 포함됩니다.

  • 밑줄 (_), 기호 (@) 또는 기호 (#). 식별자의 시작 부분에

특정 기호는 SQL 서버에서 특별한 의미가있다. 이 at 기호로 시작하는 일반 식별자는 항상 로컬 변수 또는 매개 변수를 나타내며 은 다른 유형의 개체 이름으로 사용할 수 없습니다. 숫자 기호로 시작하는 식별자 은 임시 테이블 또는 프로 시저를 나타냅니다. double로 시작하는 식별자 숫자 기호 (##)는 전체 임시 개체를 나타냅니다. 숫자 부호 또는 이중 숫자 기호 문자 을 사용하여 다른 유형의 개체 인 의 이름을 시작할 수는 있지만 은이 방법을 권장하지 않습니다.

일부 Transact-SQL 함수의 이름은 이며 이중 기호 (@@)로 시작합니다. 이러한 기능과 혼동되지 않도록하려면 @@로 시작하는 이름 을 사용하면 안됩니다.

큰 따옴표 "4444-virtual2" 또는 괄호 [4444-virtual2]을 사용하여 이름을 사용할 때마다 구분하지 않으려면 예외입니다.

+0

는 동의했다. 참조 : http://msdn.microsoft.com/en-us/library/ms175874.aspx – Mike

+0

대단히 감사합니다. 매우 통찰력이있었습니다! –

2

해당 이름의 데이터베이스를 만들 수는 있지만 따옴표 또는 대괄호로 묶어야합니다. 예 :이 작품 :

CREATE DATABASE [4444-virtual2] 

나이 :

CREATE DATABASE "4444-virtual2" 
관련 문제