문제

Visual Studio 2008에서는 SQL의 열 이름 주위에 대괄호를 배치하는 것으로 나타났습니다.브래킷이 어떤 이점을 제공합니까?내가 T-SQL 코드를 직접 작성할 때 나는 그것들을 결코 귀찮게 하지 않았습니다.

예:비주얼 스튜디오:[열1], [열2] 등을 선택하세요.

나만의 방식:SELECT 열1, 열2 등...

도움이 되었습니까?

해결책

열 이름이나 식별자에 키워드나 특수 문자를 사용하는 경우 대괄호가 필요합니다.열 이름을 지정할 수 있습니다. [First Name] (공백 포함)--하지만 해당 열을 참조할 때마다 대괄호를 사용해야 합니다.

최신 도구는 경우에 따라 또는 일관성을 위해 모든 곳에 추가합니다.

다른 팁

열의 이름이 SQL 키워드와 동일하거나 공백이 있는 경우 유용합니다.

예:

create table test ( id int, user varchar(20) )

안 돼!'user' 키워드 근처의 구문이 잘못되었습니다.하지만 이것은:

create table test ( id int, [user] varchar(20) )

잘 작동합니다.

예를 들어 (어떤 이유로든) 특정 문자가 포함된 열 이름을 사용하는 경우 유용합니다.

Select First Name From People

작동하지 않지만 열 이름 주위에 대괄호를 넣으면 작동합니다.

Select [First Name] From People

즉, 개체 이름을 명시적으로 선언하는 방법입니다.열, 테이블, 데이터베이스, 사용자 또는 서버.

열 이름에는 쿼리 실행 엔진을 혼란스럽게 하는 문자와 예약어가 포함될 수 있으므로 항상 대괄호를 둘러싸면 이러한 일이 발생하지 않습니다.문제를 확인하고 처리하는 것보다 더 쉬운 것 같아요.

열 이름이 예약어인 경우 대괄호를 사용할 수 있습니다.

제어할 수 없는 열 이름 모음에서 SQL 문을 프로그래밍 방식으로 생성하는 경우 항상 대괄호를 사용하면 문제를 피할 수 있습니다.

또한 일부 SharePoint 데이터베이스에는 이름에 하이픈이 포함되어 있습니다.SQL 문에서 대괄호를 사용하면 이름을 올바르게 구문 분석할 수 있습니다.

일관성을 위해 거기에 추가한다고 생각합니다 ...열 이름에 공백이나 특수 문자가 있는 경우에만 필요하지만 IDE가 SQL을 생성할 때 항상 포함하는 것이 더 깔끔합니다.

예약어 사용을 피하는 명명 규칙을 따르더라도 Microsoft는 새로운 예약어를 추가합니다.대괄호를 사용하면 먼저 클라이언트 코드에서 Microsoft의 새로 예약된 단어를 편집할 필요 없이 코드를 새 SQL Server 버전으로 업그레이드할 수 있습니다.편집은 중요한 관심사가 될 수 있습니다.이로 인해 프로젝트가 조기에 폐기될 수 있습니다....

대괄호는 스크립트에서 모두 바꾸기를 원할 때도 유용할 수 있습니다.배치에 @String이라는 변수와 [String]이라는 열이 포함되어 있는 경우 @String을 @NewString으로 바꾸지 않고도 열 이름을 [NewString]으로 바꿀 수 있습니다.

1990년대 SQL의 암흑기 동안 SQL 설계자들은 끝없는 새로운 기능의 홍수에 대한 키워드로 사전의 각 단어를 추가하려고 시도했고 이를 SQL3 초안이라고 불렀기 때문에 이는 좋은 관행이었습니다.

따라서 향후 호환성을 유지합니다.

그리고 나는 또 다른 좋은 부작용이 있다는 것을 발견했습니다. 코드 검토 및 리팩토링에서 grep을 사용할 때 많은 도움이 됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top