2009-07-14 2 views
4

Microsoft가 자체 SQL 확장을 Transact SQL (T-SQL)로 구현 한 이유는 무엇입니까? 일반적인 SQL보다 장점은 무엇입니까?Microsoft에서 왜 자체 SQL 확장 (T-SQL)을 만들었습니까?

+0

거의 모든 DB 공급 업체는 자체 SQL 구현을 가지고 있으며, 대부분은 표준 SQL을 지원합니다. 누군가가 당신의 질문에 대답한다면, 당신을 어떻게 도와 줄 수 있습니까? – shahkalpesh

+3

@shahkalpesh : "누군가 질문에 답하면 어떻게 도움이됩니까?" 귀하의 질문은 지식과 이해의 모든 부분을 부정합니다. 모든 교육이 실용적이어야하거나 실용적이어야합니다. – andy

+2

사실, Sybase의 SQL 확장 기능입니다. Microsoft는 이러한 기능을 "상속"했습니다. –

답변

4

누구나 SQL을 확장합니다.

SQL은 절차 적이 아니며 선언적입니다. 원하는 것을 설명하고, 색인이나 해시 등을 사용하여 검색하는 방법을 알아냅니다.

하지만 때로는 충분하지 않습니다. T-SQL은 쿼리 내에서 절차 코드를 실행하는 구문을 제공합니다. 이를 통해 구조 변수 (begin-end, if-then-else), 반복 및 로컬 변수, 임시 테이블 및 기타 소스간에 값을 이동할 수 있습니다.

4

Transact-SQL (T-SQL)은 Microsoft와 Sybase의 SQL에 대한 독점적 인 확장 프로그램입니다. Microsoft 구현은 Microsoft SQL Server 제품에 포함되어 있습니다. Sybase는 Sybase SQL Server의 후속 제품인 Adaptive Server Enterprise에서이 언어를 사용합니다. 거래-SQL 이러한 추가 기능 SQL 향상 :

  • 흐름 제어 언어
  • 로컬 변수
  • 등 문자열 처리 기간 처리 수학위한
  • 다양한 지원 기능
  • DELETE 및 UPDATE 문에 대한 개선 필요 [표창장 필요]

http://en.wikipedia.org/wiki/Transact-SQL

위키에서 더 많은 정보와 세부 정보를 확인할 수 있습니다.

2

대부분의 RDBMS 제공 업체는 SQL 확장과 저장 프로 시저 및 트리거 작성에 사용되는 프로그래밍 언어를 명확하게 구분하지만 Microsoft와 Sybase는 그 반대입니다. 개념, 즉 T-SQL로 변환합니다. 일반 쿼리를 작성할 때는 T-SQL을 사용하지만 저장 프로 시저 및 트리거를 작성할 때 T-SQL을 사용할 수도 있습니다.

이것은 생성에 절차 적 SQL 코드 [*]를 사용하도록 장려하는 논란의 여지가 있습니다.

요즘 Microsoft는 T-SQL 저장 프로 시저와 CLR (예 : .NET) 용으로 작성된 프로 시저를 구분하지만 이는 SQL Server 2005 이후의 새로운 개발입니다.

[*] : SQL을 사용하지 않는 사람들은 SQL (올바른 일)을 배우는 대신 절차 코드 (일반적으로 데이터베이스에서는 매우 비효율적)를 작성하고 싶어하기 때문에 논쟁의 여지가 있습니다.

4

Microsoft는 Transact SQL (T-SQL)와 같은 자신의 SQL 확장을 구현 뒤에 이유는 무엇입니까?

인생을 편하게하십시오.

SQL의 장점은 무엇입니까?

"정상 SQL"

Transact-SQL이 모두 SQL 세트 기반의 능력을 강화하고 추가 절차 능력 같은 건 없다. (OraclePostgreSQL 등)

다른 시스템은 명확 SQL 및 절차 언어 (PL/SQLpl/PgSQL)을 구분합니다.

Microsoft는 이러한 엄격한 구별을하지 않습니다. 전혀 표준 (첫 번째는 1986에서 제안 된)가 없을 때

Transact-SQL80's의 중순 Sybase에 의해 개발되었다.

각 공급 업체는 이미 레거시 응용 프로그램을 지원해야하는 부담이 있으며 표준을 준수하도록 데이터베이스를 다시 작성하면 호환성이 깨질 수 있습니다.

일반적으로 지원되는 표준 인 SQL:92이 있지만 실제로는 사용하기가 너무 많이 빠져 있습니다.

SELECTJOIN 인 모든 작업이 효율적으로 구현되기 위해서는 독점적 인 지원이 필요합니다.

0

왜 벤더가 SQL의 고유 한 맛을 창출하는지에 대한 또 하나의 중요한 이유는 성능 조정입니다. 특정 데이터베이스 엔진의 작동 방식을 활용하기 위해 작성된 공급 업체 특정 코드를 사용하여보다 성능이 우수한 쿼리를 작성하는 방법은 많이 있습니다.

1

흐름 제어, 로컬 변수 등 (즉, 절차 코드)에 적용 할 수있는 SQL 표준을 SQL/PSM (영구 저장 모듈)이라고합니다.

Wikipedia에 따르면 그것은 1996 년에 채택되었다하지만 난 그게 일반적인 문제 용의자 : 공급 업체는 이미 자신의 확장을 위해 최선을 다하고 있으므로 시간

오랜 기간 동안 연기 된 표준 차지했다 ...하지만 반드시 무기한이 아니라 희망이 있습니다. 예를 들어 SQL Server 2005의 CTE (Common Table Express) 및 OLAP 기능과 SQL Server 2008의 임시 데이터 형식은 TSQL 확장이 게시 표준과 거의 동일 함을 나타냅니다.

관련 문제