2013-03-14 17 views
14

Sto utilizzando Windows 7 (x64) e ho uno script generato automaticamente per la creazione di un database SQL Server Express 2012.CONTAINMENT è contrassegnato come sintassi errata sullo script del database generato automaticamente

Lo script inizia come segue:

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 
    ... 

Lo script primo errore è

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

L'idea è quella di passare un database da un server all'altro con diversi SQL Server 2012 versioni. Volevo mantenere gli script nel caso in cui avessi bisogno di creare il DB da qualche altra parte.

Perché lo script generato automaticamente causa questo errore?

risposta

20

Sbarazzarsi della CONTAINMENT = NONE

E 'l'impostazione predefinita in modo che non ne hanno bisogno e SQL Server Express sembra soffocare su di esso.

+0

Grazie @Sebastian Meine hai ragione. Sono anche tornato al server e ho creato lo script con la versione 2012, che era stato creato come R2 2008 per impostazione predefinita, questo era il problema principale. – Pimenta

+0

@Pimenta Come hai creato gli script come 2012 invece del 2008 su un server 2008? – slayernoah

+0

@slayernoah Il server è 2012, ma la configurazione deefault è stata impostata su 2008. – Pimenta