2009-04-15 6 views
12

SQL 매개 변수 이름에 사용할 유효한 문자가 무엇인지 알아야합니다.SQL Server - 매개 변수 이름에 잘못된 문자가 있음

예를 들어, SELECT * FROM tblTest WHERE testid = @[X]과 같이 간단한 것이 있으면 X에 하이픈이 포함되어 있으면 명령문이 실패합니다. 매개 변수 이름에 유효한 문자는 무엇입니까?

답변

22

검색 온라인 유사한 검색해야한다 (이것은 SQL 서버 2008 검색했다) 당신은 찾아야한다 : 보통 식별자

에 대한

규칙

일반 식별자의 형식에 대한 규칙은 데이터베이스 호환성 수준에 따라 다릅니다. 이 수준은 sp_dbcmptlevel을 사용하여 설정할 수 있습니다. 호환성 수준이 90 인 경우 는 다음과 같은 규칙이 적용

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

  • 유니 코드 표준 3.2에 의해 정의 된 편지. 문자의 유니 코드 정의에는 A부터 Z까지의
    의 라틴 문자와 다른 언어의 문자가 포함됩니다.
  • 밑줄 (_), 기호 (@) 또는 숫자 기호 (#). 식별자의 시작 부분에

특정 기호는 SQL Server의 특별한 의미를 가지고있다. 기호로 시작하는 일반 식별자는 항상 로컬 변수 또는 매개 변수를 나타내며 을 다른 유형의 개체 이름으로 사용할 수 없습니다. 숫자 기호가있는 을 시작하는 식별자는 임시 테이블 또는 프로 시저를 나타냅니다. 이중 숫자 기호 (##)로 시작하는 식별자는 글로벌 임시 개체를 나타냅니다. 다른 유형의 객체의 이름을 시작하려면 숫자 기호 또는 숫자 기호 을 사용할 수 있지만 은 권장하지 않습니다.

일부 Transact-SQL 함수의 이름은 (@@) 기호에서 double로 시작하는 이름을 갖습니다. 이러한 함수와의 혼동을 피하기 위해 @@로 시작하는 이름을 으로 사용하면 안됩니다.

  • 문자를 유니 코드 표준 3.2에 정의 :

    후속 문자는 다음을 포함 할 수있다.

  • 라틴계 또는 기타 국가 별 스크립트의 십진수.
  • at 기호, 달러 기호 ($), 숫자 기호 또는 밑줄.

식별자는 Transact-SQL 예약어 여서는 안됩니다. SQL Server 은 예약어의 대문자와 소문자 버전을 모두 예약합니다. 공백이나 특수 문자는 사용할 수 없습니다. 보충 문자는 허용되지 않습니다.

온라인 SQL 책에서 "구분 식별자"에 대한 검색, 당신이 찾아야한다 :

식별자의 몸은 제외 현재 코드 페이지에 에게 문자의 조합을 포함 할 수 있습니다 문자를 구분하는 문자는 입니다. 예를 들어 의 경우 구분 식별자는 공백을 포함 할 수 있으며 , 정규 식별자는 및 다음 문자 중 하나는 입니다.

tilde (~)    hyphen (-) 
exclamation point (!) left brace ({) 
percent (%)    right brace (}) 
caret (^)    apostrophe (') 
ampersand (&)   period (.) 
left parenthesis (()  backslash (\) 
right parenthesis()) accent grave (`) 

마크

+0

좋은 일 남자, 감사합니다. – Stimul8d

1

검색을위한 온라인 설명서 [SQL Server]. 매개 변수 이름에 따라야하는 규칙이 있습니다. 다른 버전은 당신의 SQL 책에서 "식별자"에 대한

관련 문제