sql 문에서 대괄호 []를 사용하는 이유는 무엇입니까?
Visual Studio 2008은 SQL의 열 이름 주위에 대괄호를 배치하고 있습니다.브래킷이 어떤 이점을 제공합니까?T-SQL을 핸드코드로 할 때는 전혀 신경 쓰지 않습니다.
예:
Visual Studio:
SELECT [column1], [column2] etc...
나만의 방법:
SELECT column1, column2 etc...
열 이름 또는 식별자에 키워드 또는 특수 문자를 사용하는 경우 대괄호는 필수입니다.열 이름을 지정할 수 있습니다.[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
즉, 객체 이름(열, 테이블, 데이터베이스, 사용자 또는 서버)을 명시적으로 선언하는 방법입니다.
1990년대 SQL의 암흑기에는 SQL 설계자들이 사전에 새로운 기능의 무한 확장을 위한 키워드로 각 단어를 추가하려고 할 때 SQL3 초안이라고 불렀기 때문에 좋은 작업 방식이었습니다.
호환성을 유지할 수 있습니다.
그리고 코드 리뷰나 리팩터링에서 GREP를 사용하면 많은 도움이 된다는 것을 알게 되었습니다.
예약어를 사용하지 않는 명명 규칙을 따르더라도 Microsoft는 새 예약어를 추가합니다.괄호를 사용하면 클라이언트 코드에서 Microsoft의 새로 예약된 단어를 편집할 필요 없이 코드를 새 SQL Server 버전으로 업그레이드할 수 있습니다.그 편집은 중대한 문제가 될 수 있습니다.프로젝트가 조기에 폐기될 수 있습니다.
대괄호는 스크립트에서 모두 바꾸려는 경우에도 유용합니다.배치에 @String이라는 변수와 [String]이라는 컬럼이 포함되어 있는 경우 @String을 @NewString으로 바꾸지 않고 컬럼의 이름을 [NewString]으로 변경할 수 있습니다.
열 이름에는 쿼리 실행 엔진을 혼동할 수 있는 문자 및 예약된 단어가 포함될 수 있습니다.따라서 항상 괄호를 둘러쌉니다.문제를 확인하고 해결하는 것보다 쉬운 것 같아요.
각 괄호는 열 이름이 예약된 단어일 때 사용할 수 있습니다.
제어할 수 없는 열 이름 집합에서 SQL 문을 프로그래밍 방식으로 생성하는 경우 항상 대괄호를 사용하면 문제를 방지할 수 있습니다.
또한 일부 쉐어포인트 데이터베이스는 이름에 하이픈을 포함합니다.SQL 문에 대괄호를 사용하면 이름을 올바르게 구문 분석할 수 있습니다.
SQL의 각 요소를 식별하는 데 유용합니다.
예를 들어 다음과 같습니다.
CREATE TABLE SchemaName.TableName (
수 .SchemaName.TableName
「」로dbo
스키마 내부에 을 작성할 수 없습니다.SchemaName
스키마
올바른 방법은 다음과 같습니다.
CREATE TABLE [SchemaName].[TableName] (
이 어떤 알 수 있습니다( 이름).SchemaName
및 "Skema"가 아닙니다.dbo
schema의 경우)
일관성을 위해 거기에 그들을 더하는 것 같아요열 이름에 공백이나 특수 문자가 있는 경우에만 필요하지만 IDE가 SQL을 생성할 때 항상 포함시키는 것이 좋습니다.
언급URL : https://stackoverflow.com/questions/52898/what-is-the-use-of-the-square-brackets-in-sql-statements
'source' 카테고리의 다른 글
SQL Server 2005 고유 제약 조건 작성 방법 (0) | 2023.04.07 |
---|---|
SQL Server: UniqueIdentifier를 케이스 스테이트먼트 문자열로 변환 (0) | 2023.04.07 |
SQL Server의 select 문에 TOP가 있는 변수를 동적으로 만들지 않고 사용 (0) | 2023.04.07 |
SQL Server에서 Forech를 쓰는 방법 (0) | 2023.04.07 |
엔티티 프레임워크 마이그레이션의 테이블 및 열 이름 변경 (0) | 2023.04.07 |