2009-06-08 13 views
6

で利用可能な共通テーブル式の(CTE)は次のとおりです。は、私は最近、以下の記事を見つけたSQL Server 2000の

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

記事はこれがで利用可能になったSQL Serverのバージョンが表示されませんこれを行いますSQL Server 2000で動作し、それが使用可能な最も初期のバージョンは何ですか?

更新:私は簡単なテストを試みましたが、テストは機能しません。私はそれが私または私のセットアップでないことを確認するためにSS2000で動作しないことを求めています。

答えて

14

共通テーブル式を使用すると、その機能が必要な場合は、アップグレードする管理を説得するための良い方法かもしれませんSQL Server 2005の

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

+0

リンクと回答ありがとうございました。 –

+1

何らかの理由でデータベースに互換性の低いモードを指定する必要がある場合、後者のバージョンで利用できる構文は使用できなくなります。たとえば、SQL Server 2005では古いansi-join構文が嫌いです。データベースの互換性モードを8.0(SQL Server 2000)に設定すると、WITH-statementsもそのデータベースで使用できなくなります。 –

+2

@Lasse - 私は同じことをしていましたが、そうではありません。互換性レベルは構文の可用性に影響しません。 をDATABASE [CompatabilityTest] EXEC dbo.sp_dbcmptlevel @ DBNAME = N'CompatabilityTest」、new_cmptlevel @ = 80 GO 使用CompatabilityTest GO をGO CREATE; MyCTE AS WITH(sys.databasesから名前を選択する:それをチェックアウト) SELECT *からMyCTE –

2

で導入されました。

+0

私はアップグレードしました....私が行っているプロジェクトを除いて。私たちはDTSの大量使用のために立ち往生しています。 DTSパッケージを変更するためのリソースはありません。それは愚かです。 –

+0

ああ、この記事を読んで: http://www.simple-talk。012/DTS-Ssis-Migration/ DTSパッケージをSQL Server 2005または2008から実行および保守するためにダウンロードできるツールがあります.DTSパッケージは、徐々にSSISに変換されています。 – HLGEM

1

@Aaron - 互換性レベルは構文の有効性に影響しないと言っています。実際、時には真実だと思う。 SQL Server 2005の互換性レベル80(SQL Server 2000モード)データベースを使用して見たことは、SQL Server 2005に新しく追加された構文が利用可能であることです。たとえば、あなたが正しく言えば、CTEが利用可能です。ただし、PIVOT演算子はそうではありません。だから私の小さな経験では、それは特定の構文上の特徴に依存しているようです。 (私はこれを一番上の答えの下に掲載しますが、設計上このサイトは、スレッドに適した場所で応答できるようにするには、50の評判ポイントが必要です)。

0

互換性レベルとCTEに注意してください。少し奇妙。

SELECT 1 a 
WITH A AS (SELECT 1 a) 
    SELECT 1 from A 

SQL Server 2005互換性レベル80(SQL Server 2000)で動作しますが、互換性レベル90(SQL Server 2005)では動作しません。互換性レベル90の前にセミコロンを正しく入力する必要があります。

前述のように、SQL Server 2000はこれをまったくサポートしていません。

0

互換性レベルを80に設定してCTEを実行しているSQL 2008を実行しているようです。本当に奇妙な互換性レベルが80に設定されている理由を聞かないでください...ここから始めました。

関連する問題