2010-05-22 2 views
2

대괄호를 사용하면 열 이름이나 별칭에 허용되지 않는 문자가 포함 된 별칭이나 별칭에 이름을 사용할 수 있습니다.이름이 유효한 문자로 구성되어 있어도 테이블/열 이름은 대괄호로 묶입니다.

a) 이름이 완전히 유효한 문자로 구성되어 있어도 테이블과 열 이름이 대괄호로 묶인 것으로 나타났습니다. 왜 그런가요?

b) 내가 아는 한, 객체 이름을 묶는 대괄호는 실제로 그 이름의 일부가 아닙니다.

CREATE TABLE [A] (…) 

우리가 나중에 사용 괄호없이 참조 할 수 있습니다 : 우리가 [A]라는 이름의 테이블을 생성하는 경우 따라서,

SELECT * FROM A 

를 왜 같은 사실이 아니다 나는 열을 참조 할 때 CONTAINSTABLE 함수가 반환 한 테이블의 KEY?

답변

1

KEY는 SQL 예약어 그렇게 열 이름으로 사용하는 브라켓이 필요하다

SELECT ct.KEY 
FROM CONTAINSTABLE(fullText,*,'some_string') as ct 

고맙습니다 : 나는 열 이름을 둘러싸는 괄호를 생략하는 경우 즉, 오류가 발생합니다.

불필요한 대괄호를 볼 때 많은 시간이 도구로 생성 될 수 있다고 생각합니다. Management Studio는 일부 스크립트를 생성 할 때이 스크립트를 사용합니다.

+0

아니다 그러나 나는 또한 (자동 일부 도구에 의해 생성되지 않음) 경우 대괄호 꽤 많은 쿼리를 보았다 이름이 예약어 나 불법 문자를 사용하지 않았지만 테이블/열 이름을 묶는 곳. 대괄호도 가독성을 위해 추가 되었습니까? – AspOnMyNet

+1

그 생각은 단지 맛의 문제 일뿐입니다. 나는 게으르며 타이핑을 좋아하지 않기 때문에 개인적으로 꾸며 내지 않습니다. 또한 SSMS에서 "디자인 쿼리 편집 기능"을 사용하면 모든 것을 제거합니다. –

+0

도움을 주셔서 감사합니다. – AspOnMyNet

1

브래킷 등, 단지 열 이름에 대한 그렇지 않으면 예약 된 단어의 사용을 허용 할 수 있지만 법적 문자

관련 문제