2009-06-08 2 views
6

는 최근 다음 문서 발견.공통 테이블 식의 (CTE) SQL 서버에서 사용할 수있는 2000

http://www.tsqltutorials.com/with-common-table-expressions.php

이 기사는이 제공되었다 SQL 서버의 버전을 나열하지 않습니다를 이합니까 SQL Server 2000에서 작동하며 사용 가능한 가장 초기 버전이 아닌 경우

업데이트 : 빠른 테스트를 시도했지만 테스트가 작동하지 않았습니다. SS2000에서 나 또는 내 설정이 아닌지 확인하기 위해 작동하지 않는지 묻습니다.

답변

14

공통 테이블 표현식은 그 기능이 필요한 경우, 업그레이드 관리를 설득 할 수있는 좋은 방법이 될 수있는 SQL 서버 2005

http://www.simple-talk.com/sql/sql-server-2005/sql-server-2005-common-table-expressions/

+0

감사합니다. 링크 및 답변. –

+1

어떤 이유로 든 데이터베이스에 낮은 호환성 모드를 지정해야하는 경우 후자 버전에서 사용할 수있는 구문을 사용할 수 없게됩니다. 예를 들어 SQL Server 2005는 이전 ANSI 조인 구문을 좋아하지 않으며 데이터베이스의 호환 모드를 8.0 (SQL Server 2000)으로 설정하면 WITH 문도 해당 데이터베이스에서 사용할 수 없게됩니다. –

+2

@Lasse - 나는 똑같은 것을하는 데 익숙했지만, 그런 경우는 아닙니다. 호환성 수준은 구문 가용성에 영향을 미치지 않습니다. 이를 확인 : 는 데이터베이스 [CompatabilityTest] @ DBNAME = N'CompatabilityTest dbo.sp_dbcmptlevel EXEC 이동 작성 '@ new_cmptlevel = 80 는 가 이동 USE CompatabilityTest 가고; MyCTE AS는 (하려면 sys.databases FROM 이름을 선택 WITH) SELECT * FROM MyCTE –

2

에 소개되었다.

+0

업그레이드했습니다 .... 제가 진행중인 프로젝트를 제외하고. 우리는 DTS의 과도한 사용으로 인해 붙어 있습니다. DTS 패키지를 변경하기위한 리소스가 없습니다. 바보 야. –

+0

아이 기사를 읽으십시오 : http : //www.simple-talk.012/DTS-Ssis-Migration/ SQL Server 2005 또는 2008에서 DTS 패키지를 실행하고 유지 관리하기 위해 다운로드 할 수있는 도구가 있습니다. 우리는 DTS 패키지를 SSIS로 천천히 변환됩니다. – HLGEM

1

@Aaron - "호환성 수준은 구문 가용성에 영향을 미치지 않습니다." 사실, 때로는 사실이라고 생각합니다. SQL Server 2005에서 호환성 수준 80 (SQL Server 2000 모드) 데이터베이스를 사용하여 보았던 점은 SQL Server 2005에 익숙하지 않은 일부 구문을 사용할 수 있다는 것입니다. 예를 들어, 귀하가 올바르게 지적한대로 CTE를 사용할 수 있습니다. 그러나 PIVOT 연산자는 아닙니다. 그래서 (저의 작은 경험에서) 그것은 특정한 구문 적 특징에 의존하는 것처럼 보입니다. (이 질문은 최상위 답변 아래에 게시 하겠지만 설계 상이 사이트는 스레드에 적합한 위치에서 응답하기 전에 50 개의 평판 포인트를 얻어야합니다.)

0

호환성 수준과 CTE에주의하십시오. 좀 이상하다.

SQL Server 2005 호환성 수준 80 (SQL Server 2000)에서는 실행되지만 호환성 수준 90 (SQL Server 2005)에서는 실행되지 않습니다. 호환성 수준 90 앞에는 세미콜론이 필요합니다.

앞서 언급 한 것처럼 SQL Server 2000에서는이 기능을 전혀 지원하지 않습니다.

0

호환성 수준을 80으로 설정하고 CTE로 SQL 2008을 실행하면 CTE가 작동하는 것 같습니다. 진짜 기괴한. 호환성 수준을 80으로 설정 한 이유는 여기에서 시작되었습니다.

관련 문제