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を作成する必要がある場合に備えて、スクリプトを保持したかったのです。
自動生成されたスクリプトがこのエラーを引き起こすのはなぜですか?
CONTAINMENT = NONE
を取り除く
これはデフォルトであるため、必要はなく、SQL Server Expressが動作しなくなるようです。