なぜ互換モード80でのデータベースのSQL Server 2008の仕事の新しいT-SQLのでしょうか?

StackOverflow https://stackoverflow.com/questions/3813351

質問

T-SQLの新機能を試す、私はパズルに遭遇しました。ここではSQL 2008でサポートされているいくつかの新しい構文があると私は互換モード80(すなわち、2000年)のための互換モード100(すなわち、2008)およびない仕事のために設定されたデータベース上での作業にそれを期待します。しかし、標準版のSQL 2008のインスタンスにSQL Server 2000の互換モード用のデータベース・セットのこの作品ます:

use MDS    -- this db is compat mode 80
go
CREATE TABLE dbo.Employees
(
Name VARCHAR(50) NULL,
Email VARCHAR(50) NULL,
Salary money NULL
) 
INSERT INTO dbo.Employees(Name, Email, Salary)
VALUES('Scott', 'scott@example.com', 50000.00),
  ('Jisun', 'jisun@example.com', 225000.00),
  ('Alice', 'al@example.com', 75000.00),
  ('Sam', 'sam@example.com', 45000.00)

SELECT * FROM dbo.Employees  
drop table dbo.Employees
役に立ちましたか?

解決

互換モードの設定は、比較的databaeエンジン挙動の(私見)の態様を不明瞭一定制御するために使用されます。これは、以前のバージョンから移行したデータベースで使用されているから、T-SQL言語の拡張機能の使用をブロックするか、または防ぐことはできません - 例えば、データベースは、SQL 2000からバックアップおよびSQL 2008に復元のCTEと新しいマルチをサポートします値INSERT文ます。

データベースの互換モードで制御されているものの実際の詳細は、Books Onlineのいくつかの記事に埋め込まれています。 こののは良いが、これを研究の場を開始されます。

他のヒント

私はあなたがあなたのテーブルを作成する前に、これは、この行を追加する互換モード80トライで仕事ができる方法を見ていない:

sp_dbcmptlevel 'MDS'

それは80を返していますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top