19

我使用的是 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'.

这个想法是使用不同的 SQL Server 2012 版本将数据库从一台服务器传递到另一台服务器。我想保留脚本以防我需要在其他地方创建数据库。

为什么自动生成的脚本会导致这个错误?

4

1 回答 1

25

摆脱CONTAINMENT = NONE

它是默认设置,因此您不需要它,而且 SQL Server Express 似乎无法使用它。

于 2013-03-14T13:36:36.387 回答