web-dev-qa-db-ja.com

自動生成データベーススクリプトでCONTAINMENTが不正な構文としてマークされています

Windows 7(x64)を使用していますが、SQL Server Express 2012データベースを作成するための自動生成スクリプトがあります。

スクリプトは次のように開始します。

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

スクリプトの最初のエラーは

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

この考え方は、データベースを1つのサーバーから別のSQL Server 2012バージョンの別のサーバーに渡すことです。他の場所にDBを作成する必要がある場合に備えて、スクリプトを保持したかったのです。

自動生成されたスクリプトがこのエラーを引き起こすのはなぜですか?

19
Pimenta

CONTAINMENT = NONEを取り除く

これはデフォルトであるため、必要はなく、SQL Server Expressが動作しなくなるようです。

24
Sebastian Meine