2013-03-14 8 views
14

Ich verwende Windows 7 (x64) und ich habe ein automatisch generiertes Skript zum Erstellen einer SQL Server Express 2012-Datenbank.CONTAINMENT ist als falsche Syntax für automatisch generiertes Datenbankskript markiert

Das Skript beginnt wie folgt:

USE [master] 
GO 

CREATE DATABASE [Example] 
CONTAINMENT = NONE 
ON PRIMARY 
(NAME = N'Example', FILENAME = N'D:\Example.mdf' , SIZE = 4544KB , 
MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB) 
LOG ON 
(NAME = N'Example_log', FILENAME = N'D:\Example_log.ldf' , SIZE = 3136KB , 
MAXSIZE = 2048GB , FILEGROWTH = 10%) 
    GO 
    ALTER DATABASE [Example] SET COMPATIBILITY_LEVEL = 100 
    GO 
    IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')) 
    begin 
    EXEC [Example].[dbo].[sp_fulltext_database] @action = 'enable' 
    end 
    GO 
    ... 

Das Skript erste Fehler ist

Msg 102, Level 15, State 1, Line 3 
Incorrect syntax near 'CONTAINMENT'. 

Die Idee ist es, eine Datenbank von einem Server zum anderen mit verschiedenen SQL Server 2012-Versionen zu übergeben. Ich wollte die Skripte für den Fall behalten, dass ich die Datenbank woanders erstellen musste.

Warum verursacht das automatisch generierte Skript diesen Fehler?

Antwort

20

Sie sich von dem Es ist der Standard CONTAINMENT = NONE

befreien, so dass Sie es nicht brauchen und SQL Server Express scheint es zu ersticken.

+0

Danke @Sebastian Meine Sie sind richtig. Ich ging auch zurück zum Server und erstellte das Skript mit der Version 2012, es wurde als 2008 R2 standardmäßig erstellt, das war das Hauptproblem. – Pimenta

+0

@Pimenta Wie haben Sie die Skripte als 2012 statt als 2008 auf einem Server 2008 erstellt? – slayernoah

+0

@slayernoah Der Server ist 2012, aber die Deefault-Konfiguration wurde auf 2008 festgelegt. – Pimenta