Tsql 在自动生成的数据库脚本上,包含被标记为不正确的语法
我使用的是Windows 7(x64),我有一个自动生成的脚本,用于创建SQL Server Express 2012数据库 脚本的开头如下所示:Tsql 在自动生成的数据库脚本上,包含被标记为不正确的语法,tsql,windows-7-x64,sql-server-2012-express,Tsql,Windows 7 X64,Sql Server 2012 Express,我使用的是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, FILEGROWT
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版本将数据库从一台服务器传递到另一台服务器。我想保留脚本,以防我需要在其他地方创建数据库
为什么自动生成的脚本会导致此错误?摆脱
CONTAINMENT=NONE
这是默认设置,因此您不需要它,而SQL Server Express似乎被它卡住了。谢谢@Sebastian Meine您是对的。我还返回到服务器并创建了版本为2012的脚本,默认情况下创建为2008 R2,这是主要问题。@Pimenta您是如何在2008服务器上创建版本为2012而不是2008的脚本的?@slayernoah服务器是2012,但deefault配置设置为2008。