Frage

Das Experimentieren mit neuen Funktionen von T-SQL, ich habe in ein Puzzle laufen. Hier finden Sie einige neue Syntax von SQL 2008 unterstützt und ich würde es an der Arbeit auf Datenbanken erwartet Set für Kompatibilitätsmodus 100 (das heißt 2008) und nicht die Arbeit für compat-Modus 80 (das heißt 2000). Doch diese Arbeiten für ein Datenbank-Set für SQL Server 2000-Kompatibilitätsmodus auf einer SQL 2008 Instanz der Standard Edition:

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
War es hilfreich?

Lösung

Der Kompatibilitätsmodus Einstellung wird verwendet, um sicher zu steuern, relativ dunkel (imho) Aspekte des databae Motorverhaltens. Es ist nicht blockieren oder die Verwendung von Erweiterungen der von T-SQL-Sprache verhindert auf Datenbanken aus früheren Versionen migriert verwendet werden - zum Beispiel, unterstützte eine Datenbank von SQL 2000 und wiederhergestellt auf SQL 2008 wird CTEs und die neuen Multi-Unterstützung Wert INSERT-Anweisungen.

Die tatsächlichen Details von dem, was von dem Datenbank-Kompatibilitätsmodus gesteuert wird, sind in mehreren Artikeln in der Online begraben; diese ist ein guter Ausgangspunkt für die Erforschung dieses.

Andere Tipps

bemerkte ich dies auch, und gefunden diese Aussage auf MSDN :

  

Setzt bestimmte Datenbankverhalten zu sein   kompatibel mit der angegebenen Version   von SQL Server.

Der Kompatibilitätsmodus wirkt sich „sicher“ Verhalten, und nicht alle Verhaltensweisen. Sehen Sie sich die ALTER DATABASE Dokumentation .

Ich sehe nicht, wie dies in COMPAT Modus 80 Versuchen arbeiten könnte diese Zeile hinzufügen, bevor Sie die Tabelle zu erstellen:

sp_dbcmptlevel 'MDS'

Ist es 80 zurückkehren?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top