Sql server 2012 如何在sql server 2008 r2中生成sql server 2012脚本?

Sql server 2012 如何在sql server 2008 r2中生成sql server 2012脚本?,sql-server-2012,sql-server-2008-r2,Sql Server 2012,Sql Server 2008 R2,我有一个来自SQL Server 2012的脚本来创建数据库,我需要在SQL Server 2008 R2中生成它。它创建数据库,但不创建表和视图等 这是我的剧本: /* Deployment script for CMS This code was generated by a tool. Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. */ GO

我有一个来自SQL Server 2012的脚本来创建数据库,我需要在SQL Server 2008 R2中生成它。它创建数据库,但不创建表和视图等

这是我的剧本:

/*
Deployment script for CMS

This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
*/
GO

SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, 
CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;

SET NUMERIC_ROUNDABORT OFF;
GO

:setvar DatabaseName "CMS"
:setvar DefaultFilePrefix "CMS"
:setvar DefaultDataPath "C:\Program Files\Microsoft SQL 
Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\"
:setvar DefaultLogPath "C:\Program Files\Microsoft SQL 
Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\"
GO

:on error exit
GO

/*
Detect SQLCMD mode and disable script execution if SQLCMD mode is not 
supported.
To re-enable the script after enabling SQLCMD mode, execute the following:
SET NOEXEC OFF; 
*/

:setvar __IsSqlCmdEnabled "True"
GO

IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
BEGIN
    PRINT N'SQLCMD mode must be enabled to successfully execute this 
script.';
    SET NOEXEC ON;
END
GO

USE [master];
GO

IF (DB_ID(N'$(DatabaseName)') IS NOT NULL) 
BEGIN
    ALTER DATABASE [$(DatabaseName)]
    SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

    DROP DATABASE [$(DatabaseName)];
END
GO

PRINT N'Creating $(DatabaseName)...'
GO
CREATE DATABASE [$(DatabaseName)]
ON 
PRIMARY(NAME = [$(DatabaseName)], FILENAME = 
N'$(DefaultDataPath)$(DefaultFilePrefix)_Primary.mdf')
LOG ON (NAME = [$(DatabaseName)_log], FILENAME = 
N'$(DefaultLogPath)$(DefaultFilePrefix)_Primary.ldf') COLLATE 
SQL_Latin1_General_CP1_CI_AS
GO
IF EXISTS (SELECT 1
       FROM   [master].[dbo].[sysdatabases]
       WHERE  [name] = N'$(DatabaseName)')
BEGIN
    ALTER DATABASE [$(DatabaseName)]
        SET ANSI_NULLS ON,
            ANSI_PADDING ON,
            ANSI_WARNINGS ON,
            ARITHABORT ON,
            CONCAT_NULL_YIELDS_NULL ON,
            NUMERIC_ROUNDABORT OFF,
            QUOTED_IDENTIFIER ON,
            ANSI_NULL_DEFAULT ON,
            CURSOR_DEFAULT LOCAL,
            RECOVERY FULL,
            CURSOR_CLOSE_ON_COMMIT OFF,
            AUTO_CREATE_STATISTICS ON,
            AUTO_SHRINK OFF,
            AUTO_UPDATE_STATISTICS ON,
            RECURSIVE_TRIGGERS OFF 
        WITH ROLLBACK IMMEDIATE;
    ALTER DATABASE [$(DatabaseName)]
        SET AUTO_CLOSE OFF 
        WITH ROLLBACK IMMEDIATE;
END


GO
IF EXISTS (SELECT 1
       FROM   [master].[dbo].[sysdatabases]
       WHERE  [name] = N'$(DatabaseName)')
BEGIN
    ALTER DATABASE [$(DatabaseName)]
        SET ALLOW_SNAPSHOT_ISOLATION OFF;
END


GO
IF EXISTS (SELECT 1
       FROM   [master].[dbo].[sysdatabases]
       WHERE  [name] = N'$(DatabaseName)')
BEGIN
    ALTER DATABASE [$(DatabaseName)]
        SET READ_COMMITTED_SNAPSHOT OFF 
        WITH ROLLBACK IMMEDIATE;
END


GO
IF EXISTS (SELECT 1
       FROM   [master].[dbo].[sysdatabases]
       WHERE  [name] = N'$(DatabaseName)')
BEGIN
    ALTER DATABASE [$(DatabaseName)]
        SET AUTO_UPDATE_STATISTICS_ASYNC OFF,
            PAGE_VERIFY NONE,
            DATE_CORRELATION_OPTIMIZATION OFF,
            DISABLE_BROKER,
            PARAMETERIZATION SIMPLE,
            SUPPLEMENTAL_LOGGING OFF 
        WITH ROLLBACK IMMEDIATE;
END


GO
IF IS_SRVROLEMEMBER(N'sysadmin') = 1
BEGIN
    IF EXISTS (SELECT 1
               FROM   [master].[dbo].[sysdatabases]
               WHERE  [name] = N'$(DatabaseName)')
        BEGIN
            EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
SET TRUSTWORTHY OFF,
    DB_CHAINING OFF 
WITH ROLLBACK IMMEDIATE';
        END
END
ELSE
BEGIN
    PRINT N'The database settings cannot be modified. You must be a SysAdmin 
to apply these settings.';
END


GO
IF IS_SRVROLEMEMBER(N'sysadmin') = 1
BEGIN
    IF EXISTS (SELECT 1
               FROM   [master].[dbo].[sysdatabases]
               WHERE  [name] = N'$(DatabaseName)')
        BEGIN
            EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
SET HONOR_BROKER_PRIORITY OFF 
WITH ROLLBACK IMMEDIATE';
        END
END
ELSE
BEGIN
    PRINT N'The database settings cannot be modified. You must be a SysAdmin 
to apply these settings.';
END


GO
ALTER DATABASE [$(DatabaseName)]
SET TARGET_RECOVERY_TIME = 0 SECONDS 
WITH ROLLBACK IMMEDIATE;


GO
IF EXISTS (SELECT 1
       FROM   [master].[dbo].[sysdatabases]
       WHERE  [name] = N'$(DatabaseName)')
BEGIN
    ALTER DATABASE [$(DatabaseName)]
        SET FILESTREAM(NON_TRANSACTED_ACCESS = OFF),
            CONTAINMENT = NONE 
        WITH ROLLBACK IMMEDIATE;
END


GO
IF EXISTS (SELECT 1
       FROM   [master].[dbo].[sysdatabases]
       WHERE  [name] = N'$(DatabaseName)')
BEGIN
    ALTER DATABASE [$(DatabaseName)]
        SET AUTO_CREATE_STATISTICS ON(INCREMENTAL = OFF),
            MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = OFF,
            DELAYED_DURABILITY = DISABLED 
        WITH ROLLBACK IMMEDIATE;
END


GO
USE [$(DatabaseName)];


GO
IF fulltextserviceproperty(N'IsFulltextInstalled') = 1
EXECUTE sp_fulltext_database 'enable';


GO
PRINT N'Creating [Evangelism]...';


GO
CREATE SCHEMA [Evangelism]
AUTHORIZATION [dbo];


GO
PRINT N'Creating [Evangelism].[tbl_Note]...';


GO
CREATE TABLE [Evangelism].[tbl_Note] (
[NoteId]      INT             IDENTITY (1, 1) NOT NULL,
[Description] NVARCHAR (1000) NOT NULL,
[CreatedDate] DATETIME        NOT NULL,
[UpdatedDate] DATETIME        NULL,
[ProspectId]  INT             NOT NULL,
[CreatedBy]   INT             NOT NULL,
[UpdatedBy]   INT             NULL,
CONSTRAINT [pk_Note_NoteId] PRIMARY KEY CLUSTERED ([NoteId] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Address]...';


GO
CREATE TABLE [dbo].[tbl_Address] (
[AddressId]    INT            IDENTITY (1, 1) NOT NULL,
[AddressLine1] NVARCHAR (100) NOT NULL,
[AddressLine2] NVARCHAR (100) NULL,
[Postcode]     NVARCHAR (10)  NOT NULL,
[BarangayId]   INT            NULL,
[DistrictId]   INT            NULL,
[SuburbId]     INT            NULL,
[CityId]       INT            NULL,
[ProvinceId]   INT            NULL,
[StateId]      INT            NULL,
[CountryId]    INT            NULL,
CONSTRAINT [pk_Address_AddressId] PRIMARY KEY CLUSTERED ([AddressId] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Barangay]...';


GO
CREATE TABLE [dbo].[tbl_Barangay] (
[BarangayId] INT            IDENTITY (1, 1) NOT NULL,
[Name]       NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_Barangay_BarangayId] PRIMARY KEY CLUSTERED ([BarangayId] 
ASC),
CONSTRAINT [uq_Barangay_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Church]...';


GO
CREATE TABLE [dbo].[tbl_Church] (
[ChurchId]      INT            IDENTITY (1, 1) NOT NULL,
[Code]          NVARCHAR (50)  NOT NULL,
[Name]          NVARCHAR (100) NOT NULL,
[ContactPerson] NVARCHAR (100) NOT NULL,
[AddressId]     INT            NOT NULL,
[ContactId]     INT            NOT NULL,
CONSTRAINT [pk_Church_ChurchId] PRIMARY KEY CLUSTERED ([ChurchId] ASC),
CONSTRAINT [uq_Church_Code] UNIQUE NONCLUSTERED ([Code] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_City]...';


GO
CREATE TABLE [dbo].[tbl_City] (
[CityId] INT            IDENTITY (1, 1) NOT NULL,
[Name]   NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_City_CityId] PRIMARY KEY CLUSTERED ([CityId] ASC),
CONSTRAINT [uq_City_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Contact]...';


GO
CREATE TABLE [dbo].[tbl_Contact] (
[ContactId]     INT            IDENTITY (1, 1) NOT NULL,
[Description]   NVARCHAR (100) NOT NULL,
[ContactTypeId] INT            NOT NULL,
CONSTRAINT [pk_Contact_ContactId] PRIMARY KEY CLUSTERED ([ContactId] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_ContactType]...';


GO
CREATE TABLE [dbo].[tbl_ContactType] (
[ContactTypeId] INT            IDENTITY (1, 1) NOT NULL,
[Name]          NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_ContactType_ContactTypeId] PRIMARY KEY CLUSTERED 
([ContactTypeId] ASC),
CONSTRAINT [uq_ContactType_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Country]...';


GO
CREATE TABLE [dbo].[tbl_Country] (
[CountryId] INT            IDENTITY (1, 1) NOT NULL,
[Code]      NVARCHAR (3)   NOT NULL,
[Name]      NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_Country_CountryId] PRIMARY KEY CLUSTERED ([CountryId] ASC),
CONSTRAINT [uq_Country_Code] UNIQUE NONCLUSTERED ([Code] ASC),
CONSTRAINT [uq_Country_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_District]...';


GO
CREATE TABLE [dbo].[tbl_District] (
[DistrictId] INT            IDENTITY (1, 1) NOT NULL,
[Name]       NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_District_DistrictId] PRIMARY KEY CLUSTERED ([DistrictId] 
ASC),
CONSTRAINT [uq_District_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Member]...';


GO
CREATE TABLE [dbo].[tbl_Member] (
[MemberId]    INT           IDENTITY (1, 1) NOT NULL,
[FirstName]   NVARCHAR (50) NOT NULL,
[MiddleName]  NVARCHAR (50) NULL,
[LastName]    NVARCHAR (50) NOT NULL,
[BaptismDate] DATE          NULL,
[ChurchId]    INT           NOT NULL,
[AddressId]   INT           NOT NULL,
[ContactId]   INT           NOT NULL,
CONSTRAINT [pk_Member_MemberId] PRIMARY KEY CLUSTERED ([MemberId] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Prospect]...';


GO
CREATE TABLE [dbo].[tbl_Prospect] (
[ProspectId]       INT           IDENTITY (1, 1) NOT NULL,
[FirstName]        NVARCHAR (50) NOT NULL,
[MiddleName]       NVARCHAR (50) NULL,
[LastName]         NVARCHAR (50) NOT NULL,
[LastContactDate]  DATE          NOT NULL,
[ChurchId]         INT           NOT NULL,
[AssignedTo]       INT           NULL,
[AddressId]        INT           NOT NULL,
[ContactId]        INT           NOT NULL,
[ProspectStatusId] INT           NOT NULL,
CONSTRAINT [pk_Prospect_ProspectId] PRIMARY KEY CLUSTERED ([ProspectId] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_ProspectStatus]...';


GO
CREATE TABLE [dbo].[tbl_ProspectStatus] (
[ProspectStatusId] INT            IDENTITY (1, 1) NOT NULL,
[Description]      NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_ProspectStatus_ProspectStatusId] PRIMARY KEY CLUSTERED 
([ProspectStatusId] ASC),
CONSTRAINT [uq_ProspectStatus_Description] UNIQUE NONCLUSTERED 
([Description] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Province]...';


GO
CREATE TABLE [dbo].[tbl_Province] (
[ProvinceId] INT            IDENTITY (1, 1) NOT NULL,
[Name]       NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_Province_ProvinceId] PRIMARY KEY CLUSTERED ([ProvinceId] 
ASC),
CONSTRAINT [uq_Province_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_State]...';


GO
CREATE TABLE [dbo].[tbl_State] (
[StateId] INT            IDENTITY (1, 1) NOT NULL,
[Name]    NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_State_StateId] PRIMARY KEY CLUSTERED ([StateId] ASC),
CONSTRAINT [uq_State_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Suburb]...';


GO
CREATE TABLE [dbo].[tbl_Suburb] (
[SuburbId] INT            IDENTITY (1, 1) NOT NULL,
[Name]     NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_Suburb_SuburbId] PRIMARY KEY CLUSTERED ([SuburbId] ASC),
CONSTRAINT [uq_Suburb_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [Evangelism].[fk_Note_ProspectId]...';


GO
ALTER TABLE [Evangelism].[tbl_Note]
ADD CONSTRAINT [fk_Note_ProspectId] FOREIGN KEY ([ProspectId]) REFERENCES 
[dbo].[tbl_Prospect] ([ProspectId]);


GO
PRINT N'Creating [Evangelism].[fk_Note_CreatedBy]...';


GO
ALTER TABLE [Evangelism].[tbl_Note]
ADD CONSTRAINT [fk_Note_CreatedBy] FOREIGN KEY ([CreatedBy]) REFERENCES 
[dbo].[tbl_Member] ([MemberId]);


GO
PRINT N'Creating [Evangelism].[fk_Note_UpdatedBy]...';


GO
ALTER TABLE [Evangelism].[tbl_Note]
ADD CONSTRAINT [fk_Note_UpdatedBy] FOREIGN KEY ([UpdatedBy]) REFERENCES 
[dbo].[tbl_Member] ([MemberId]);


GO
PRINT N'Creating [dbo].[fk_Address_BarangayId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_BarangayId] FOREIGN KEY ([BarangayId]) REFERENCES 
[dbo].[tbl_Barangay] ([BarangayId]);


GO
PRINT N'Creating [dbo].[fk_Address_DistrictId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_DistrictId] FOREIGN KEY ([DistrictId]) REFERENCES 
[dbo].[tbl_District] ([DistrictId]);


GO
PRINT N'Creating [dbo].[fk_Address_SuburbId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_SuburbId] FOREIGN KEY ([SuburbId]) REFERENCES 
[dbo].[tbl_Suburb] ([SuburbId]);


GO
PRINT N'Creating [dbo].[fk_Address_CityId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_CityId] FOREIGN KEY ([CityId]) REFERENCES [dbo].
[tbl_City] ([CityId]);


GO
PRINT N'Creating [dbo].[fk_Address_ProvinceId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_ProvinceId] FOREIGN KEY ([ProvinceId]) REFERENCES 
[dbo].[tbl_Province] ([ProvinceId]);


GO
PRINT N'Creating [dbo].[fk_Address_StateId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_StateId] FOREIGN KEY ([StateId]) REFERENCES 
[dbo].[tbl_State] ([StateId]);


GO
PRINT N'Creating [dbo].[fk_Address_CountryId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_CountryId] FOREIGN KEY ([CountryId]) REFERENCES 
[dbo].[tbl_Country] ([CountryId]);


GO
PRINT N'Creating [dbo].[fk_Church_AddressId]...';


GO
ALTER TABLE [dbo].[tbl_Church]
ADD CONSTRAINT [fk_Church_AddressId] FOREIGN KEY ([AddressId]) REFERENCES 
[dbo].[tbl_Address] ([AddressId]);


GO
PRINT N'Creating [dbo].[fk_Church_ContactId]...';


GO
ALTER TABLE [dbo].[tbl_Church]
ADD CONSTRAINT [fk_Church_ContactId] FOREIGN KEY ([ContactId]) REFERENCES 
[dbo].[tbl_Contact] ([ContactId]);


GO
PRINT N'Creating [dbo].[fk_Contact_ContactTypeId]...';


GO
ALTER TABLE [dbo].[tbl_Contact]
ADD CONSTRAINT [fk_Contact_ContactTypeId] FOREIGN KEY ([ContactTypeId]) 
REFERENCES [dbo].[tbl_ContactType] ([ContactTypeId]);


GO
PRINT N'Creating [dbo].[fk_Member_ChurchId]...';


GO
ALTER TABLE [dbo].[tbl_Member]
ADD CONSTRAINT [fk_Member_ChurchId] FOREIGN KEY ([ChurchId]) REFERENCES 
[dbo].[tbl_Church] ([ChurchId]);


GO
PRINT N'Creating [dbo].[fk_Member_AddressId]...';


GO
ALTER TABLE [dbo].[tbl_Member]
ADD CONSTRAINT [fk_Member_AddressId] FOREIGN KEY ([AddressId]) REFERENCES 
[dbo].[tbl_Address] ([AddressId]);


GO
PRINT N'Creating [dbo].[fk_Member_ContactId]...';


GO
ALTER TABLE [dbo].[tbl_Member]
ADD CONSTRAINT [fk_Member_ContactId] FOREIGN KEY ([ContactId]) REFERENCES 
[dbo].[tbl_Contact] ([ContactId]);


GO
PRINT N'Creating [dbo].[fk_Prospect_ChurchId]...';


GO
ALTER TABLE [dbo].[tbl_Prospect]
ADD CONSTRAINT [fk_Prospect_ChurchId] FOREIGN KEY ([ChurchId]) REFERENCES 
[dbo].[tbl_Church] ([ChurchId]);


GO
PRINT N'Creating [dbo].[fk_Prospect_AssignedTo]...';


GO
ALTER TABLE [dbo].[tbl_Prospect]
ADD CONSTRAINT [fk_Prospect_AssignedTo] FOREIGN KEY ([AssignedTo]) 
REFERENCES [dbo].[tbl_Member] ([MemberId]);


GO
PRINT N'Creating [dbo].[fk_Prospect_AddressId]...';


GO
ALTER TABLE [dbo].[tbl_Prospect]
ADD CONSTRAINT [fk_Prospect_AddressId] FOREIGN KEY ([AddressId]) REFERENCES 
[dbo].[tbl_Address] ([AddressId]);


GO
PRINT N'Creating [dbo].[fk_Prospect_ContactId]...';


GO
ALTER TABLE [dbo].[tbl_Prospect]
ADD CONSTRAINT [fk_Prospect_ContactId] FOREIGN KEY ([ContactId]) REFERENCES 
[dbo].[tbl_Contact] ([ContactId]);


GO
PRINT N'Creating [dbo].[fk_Prospect_ProspectStatusId]...';


GO
ALTER TABLE [dbo].[tbl_Prospect]
ADD CONSTRAINT [fk_Prospect_ProspectStatusId] FOREIGN KEY 
([ProspectStatusId]) REFERENCES [dbo].[tbl_ProspectStatus] 
([ProspectStatusId]);


GO
DECLARE @VarDecimalSupported AS BIT;

SELECT @VarDecimalSupported = 0;

IF ((ServerProperty(N'EngineEdition') = 3)
AND (((@@microsoftversion / power(2, 24) = 9)
      AND (@@microsoftversion & 0xffff >= 3024))
     OR ((@@microsoftversion / power(2, 24) = 10)
         AND (@@microsoftversion & 0xffff >= 1600))))
SELECT @VarDecimalSupported = 1;

IF (@VarDecimalSupported > 0)
BEGIN
    EXECUTE sp_db_vardecimal_storage_format N'$(DatabaseName)', 'ON';
END


GO
PRINT N'Update complete.';

GO
我有错误:

味精102,第15级,第6状态,第2行
“目标\u恢复\u时间”附近的语法不正确

Msg 319,第15级,状态1,第3行
关键字“with”附近的语法不正确。如果此语句是公共表表达式、xmlnamespaces子句或更改跟踪上下文子句,则前一条语句必须以分号终止

味精102,第15级,状态1,第3行
“IMMEDIATE”附近的语法不正确

批处理执行期间遇到错误。退出


希望有人能帮忙。谢谢

评论掉其中一些陈述对我来说很有用

/*
Deployment script for CMS

This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
*/

GO
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;

SET NUMERIC_ROUNDABORT OFF;


GO
:setvar DatabaseName "CMS"
:setvar DefaultFilePrefix "CMS"
:setvar DefaultDataPath "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\"
:setvar DefaultLogPath "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\"

GO
:on error exit
GO
/*
Detect SQLCMD mode and disable script execution if SQLCMD mode is not supported.
To re-enable the script after enabling SQLCMD mode, execute the following:
SET NOEXEC OFF; 
*/
:setvar __IsSqlCmdEnabled "True"
GO
IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
BEGIN
    PRINT N'SQLCMD mode must be enabled to successfully execute this script.';
    SET NOEXEC ON;
END


GO
USE [master];


GO

IF (DB_ID(N'$(DatabaseName)') IS NOT NULL) 
BEGIN
ALTER DATABASE [$(DatabaseName)]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [$(DatabaseName)];
END

GO
PRINT N'Creating $(DatabaseName)...'
GO
CREATE DATABASE [$(DatabaseName)]
ON 
PRIMARY(NAME = [$(DatabaseName)], FILENAME = N'$(DefaultDataPath)$(DefaultFilePrefix)_Primary.mdf')
LOG ON (NAME = [$(DatabaseName)_log], FILENAME = N'$(DefaultLogPath)$(DefaultFilePrefix)_Primary.ldf') COLLATE SQL_Latin1_General_CP1_CI_AS
GO
IF EXISTS (SELECT 1
       FROM   [master].[dbo].[sysdatabases]
       WHERE  [name] = N'$(DatabaseName)')
BEGIN
    ALTER DATABASE [$(DatabaseName)]
        SET ANSI_NULLS ON,
            ANSI_PADDING ON,
            ANSI_WARNINGS ON,
            ARITHABORT ON,
            CONCAT_NULL_YIELDS_NULL ON,
            NUMERIC_ROUNDABORT OFF,
            QUOTED_IDENTIFIER ON,
            ANSI_NULL_DEFAULT ON,
            CURSOR_DEFAULT LOCAL,
            RECOVERY FULL,
            CURSOR_CLOSE_ON_COMMIT OFF,
            AUTO_CREATE_STATISTICS ON,
            AUTO_SHRINK OFF,
            AUTO_UPDATE_STATISTICS ON,
            RECURSIVE_TRIGGERS OFF 
        WITH ROLLBACK IMMEDIATE;
    ALTER DATABASE [$(DatabaseName)]
        SET AUTO_CLOSE OFF 
        WITH ROLLBACK IMMEDIATE;
END


GO
IF EXISTS (SELECT 1
       FROM   [master].[dbo].[sysdatabases]
       WHERE  [name] = N'$(DatabaseName)')
BEGIN
    ALTER DATABASE [$(DatabaseName)]
        SET ALLOW_SNAPSHOT_ISOLATION OFF;
END


GO
IF EXISTS (SELECT 1
       FROM   [master].[dbo].[sysdatabases]
       WHERE  [name] = N'$(DatabaseName)')
BEGIN
    ALTER DATABASE [$(DatabaseName)]
        SET READ_COMMITTED_SNAPSHOT OFF 
        WITH ROLLBACK IMMEDIATE;
END


GO
IF EXISTS (SELECT 1
       FROM   [master].[dbo].[sysdatabases]
       WHERE  [name] = N'$(DatabaseName)')
BEGIN
    ALTER DATABASE [$(DatabaseName)]
        SET AUTO_UPDATE_STATISTICS_ASYNC OFF,
            PAGE_VERIFY NONE,
            DATE_CORRELATION_OPTIMIZATION OFF,
            DISABLE_BROKER,
            PARAMETERIZATION SIMPLE,
            SUPPLEMENTAL_LOGGING OFF 
        WITH ROLLBACK IMMEDIATE;
END


GO
IF IS_SRVROLEMEMBER(N'sysadmin') = 1
BEGIN
    IF EXISTS (SELECT 1
               FROM   [master].[dbo].[sysdatabases]
               WHERE  [name] = N'$(DatabaseName)')
        BEGIN
            EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
SET TRUSTWORTHY OFF,
    DB_CHAINING OFF 
WITH ROLLBACK IMMEDIATE';
        END
END
ELSE
BEGIN
    PRINT N'The database settings cannot be modified. You must be a SysAdmin to apply these settings.';
END


GO
IF IS_SRVROLEMEMBER(N'sysadmin') = 1
BEGIN
    IF EXISTS (SELECT 1
               FROM   [master].[dbo].[sysdatabases]
               WHERE  [name] = N'$(DatabaseName)')
        BEGIN
            EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
SET HONOR_BROKER_PRIORITY OFF 
WITH ROLLBACK IMMEDIATE';
        END
END
ELSE
BEGIN
    PRINT N'The database settings cannot be modified. You must be a SysAdmin to apply these settings.';
END


--GO
--ALTER DATABASE [$(DatabaseName)]
--    SET TARGET_RECOVERY_TIME = 0 SECONDS 
--    WITH ROLLBACK IMMEDIATE;


--GO
--IF EXISTS (SELECT 1
--           FROM   [master].[dbo].[sysdatabases]
--           WHERE  [name] = N'$(DatabaseName)')
--    BEGIN
--        ALTER DATABASE [$(DatabaseName)]
--            SET FILESTREAM(NON_TRANSACTED_ACCESS = OFF),
--                CONTAINMENT = NONE 
--            WITH ROLLBACK IMMEDIATE;
--    END


--GO
--IF EXISTS (SELECT 1
--           FROM   [master].[dbo].[sysdatabases]
--           WHERE  [name] = N'$(DatabaseName)')
--    BEGIN
--        ALTER DATABASE [$(DatabaseName)]
--            SET AUTO_CREATE_STATISTICS ON(INCREMENTAL = OFF),
--                MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = OFF,
--                DELAYED_DURABILITY = DISABLED 
--            WITH ROLLBACK IMMEDIATE;
--    END


GO
USE [$(DatabaseName)];


GO
IF fulltextserviceproperty(N'IsFulltextInstalled') = 1
EXECUTE sp_fulltext_database 'enable';


GO
PRINT N'Creating [Evangelism]...';


GO
CREATE SCHEMA [Evangelism]
AUTHORIZATION [dbo];


GO
PRINT N'Creating [Evangelism].[tbl_Note]...';


GO
CREATE TABLE [Evangelism].[tbl_Note] (
[NoteId]      INT             IDENTITY (1, 1) NOT NULL,
[Description] NVARCHAR (1000) NOT NULL,
[CreatedDate] DATETIME        NOT NULL,
[UpdatedDate] DATETIME        NULL,
[ProspectId]  INT             NOT NULL,
[CreatedBy]   INT             NOT NULL,
[UpdatedBy]   INT             NULL,
CONSTRAINT [pk_Note_NoteId] PRIMARY KEY CLUSTERED ([NoteId] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Address]...';


GO
CREATE TABLE [dbo].[tbl_Address] (
[AddressId]    INT            IDENTITY (1, 1) NOT NULL,
[AddressLine1] NVARCHAR (100) NOT NULL,
[AddressLine2] NVARCHAR (100) NULL,
[Postcode]     NVARCHAR (10)  NOT NULL,
[BarangayId]   INT            NULL,
[DistrictId]   INT            NULL,
[SuburbId]     INT            NULL,
[CityId]       INT            NULL,
[ProvinceId]   INT            NULL,
[StateId]      INT            NULL,
[CountryId]    INT            NULL,
CONSTRAINT [pk_Address_AddressId] PRIMARY KEY CLUSTERED ([AddressId] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Barangay]...';


GO
CREATE TABLE [dbo].[tbl_Barangay] (
[BarangayId] INT            IDENTITY (1, 1) NOT NULL,
[Name]       NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_Barangay_BarangayId] PRIMARY KEY CLUSTERED ([BarangayId] ASC),
CONSTRAINT [uq_Barangay_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Church]...';


GO
CREATE TABLE [dbo].[tbl_Church] (
[ChurchId]      INT            IDENTITY (1, 1) NOT NULL,
[Code]          NVARCHAR (50)  NOT NULL,
[Name]          NVARCHAR (100) NOT NULL,
[ContactPerson] NVARCHAR (100) NOT NULL,
[AddressId]     INT            NOT NULL,
[ContactId]     INT            NOT NULL,
CONSTRAINT [pk_Church_ChurchId] PRIMARY KEY CLUSTERED ([ChurchId] ASC),
CONSTRAINT [uq_Church_Code] UNIQUE NONCLUSTERED ([Code] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_City]...';


GO
CREATE TABLE [dbo].[tbl_City] (
[CityId] INT            IDENTITY (1, 1) NOT NULL,
[Name]   NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_City_CityId] PRIMARY KEY CLUSTERED ([CityId] ASC),
CONSTRAINT [uq_City_Name] UNIQUE NONCLUSTERED ([Name] ASC)
))


谢谢你的帮助

那么问题出在哪里?对不起,我没能提到这个问题/错误。我已经编辑了我的帖子。当您在SQL Server 2012中创建脚本时,您可以选择为特定的SQL Server版本(例如2008 R2)创建脚本,这样它就不会包含旧版本可能不理解的任何内容,这可能是最简单的修复方法this@scsimon谢谢我不确定它是否是这样生成的。我的同行谁产生了它是外地,我不能联系他现在,我没有访问他的电脑。我想会有一个语法在脚本中编辑。
GO
PRINT N'Creating [dbo].[tbl_Contact]...';


GO
CREATE TABLE [dbo].[tbl_Contact] (
[ContactId]     INT            IDENTITY (1, 1) NOT NULL,
[Description]   NVARCHAR (100) NOT NULL,
[ContactTypeId] INT            NOT NULL,
CONSTRAINT [pk_Contact_ContactId] PRIMARY KEY CLUSTERED ([ContactId] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_ContactType]...';


GO
CREATE TABLE [dbo].[tbl_ContactType] (
[ContactTypeId] INT            IDENTITY (1, 1) NOT NULL,
[Name]          NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_ContactType_ContactTypeId] PRIMARY KEY CLUSTERED ([ContactTypeId] ASC),
CONSTRAINT [uq_ContactType_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Country]...';


GO
CREATE TABLE [dbo].[tbl_Country] (
[CountryId] INT            IDENTITY (1, 1) NOT NULL,
[Code]      NVARCHAR (3)   NOT NULL,
[Name]      NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_Country_CountryId] PRIMARY KEY CLUSTERED ([CountryId] ASC),
CONSTRAINT [uq_Country_Code] UNIQUE NONCLUSTERED ([Code] ASC),
CONSTRAINT [uq_Country_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_District]...';


GO
CREATE TABLE [dbo].[tbl_District] (
[DistrictId] INT            IDENTITY (1, 1) NOT NULL,
[Name]       NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_District_DistrictId] PRIMARY KEY CLUSTERED ([DistrictId] ASC),
CONSTRAINT [uq_District_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Member]...';


GO
CREATE TABLE [dbo].[tbl_Member] (
[MemberId]    INT           IDENTITY (1, 1) NOT NULL,
[FirstName]   NVARCHAR (50) NOT NULL,
[MiddleName]  NVARCHAR (50) NULL,
[LastName]    NVARCHAR (50) NOT NULL,
[BaptismDate] DATE          NULL,
[ChurchId]    INT           NOT NULL,
[AddressId]   INT           NOT NULL,
[ContactId]   INT           NOT NULL,
CONSTRAINT [pk_Member_MemberId] PRIMARY KEY CLUSTERED ([MemberId] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Prospect]...';


GO
CREATE TABLE [dbo].[tbl_Prospect] (
[ProspectId]       INT           IDENTITY (1, 1) NOT NULL,
[FirstName]        NVARCHAR (50) NOT NULL,
[MiddleName]       NVARCHAR (50) NULL,
[LastName]         NVARCHAR (50) NOT NULL,
[LastContactDate]  DATE          NOT NULL,
[ChurchId]         INT           NOT NULL,
[AssignedTo]       INT           NULL,
[AddressId]        INT           NOT NULL,
[ContactId]        INT           NOT NULL,
[ProspectStatusId] INT           NOT NULL,
CONSTRAINT [pk_Prospect_ProspectId] PRIMARY KEY CLUSTERED ([ProspectId] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_ProspectStatus]...';


GO
CREATE TABLE [dbo].[tbl_ProspectStatus] (
[ProspectStatusId] INT            IDENTITY (1, 1) NOT NULL,
[Description]      NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_ProspectStatus_ProspectStatusId] PRIMARY KEY CLUSTERED ([ProspectStatusId] ASC),
CONSTRAINT [uq_ProspectStatus_Description] UNIQUE NONCLUSTERED ([Description] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Province]...';


GO
CREATE TABLE [dbo].[tbl_Province] (
[ProvinceId] INT            IDENTITY (1, 1) NOT NULL,
[Name]       NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_Province_ProvinceId] PRIMARY KEY CLUSTERED ([ProvinceId] ASC),
CONSTRAINT [uq_Province_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_State]...';


GO
CREATE TABLE [dbo].[tbl_State] (
[StateId] INT            IDENTITY (1, 1) NOT NULL,
[Name]    NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_State_StateId] PRIMARY KEY CLUSTERED ([StateId] ASC),
CONSTRAINT [uq_State_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [dbo].[tbl_Suburb]...';


GO
CREATE TABLE [dbo].[tbl_Suburb] (
[SuburbId] INT            IDENTITY (1, 1) NOT NULL,
[Name]     NVARCHAR (100) NOT NULL,
CONSTRAINT [pk_Suburb_SuburbId] PRIMARY KEY CLUSTERED ([SuburbId] ASC),
CONSTRAINT [uq_Suburb_Name] UNIQUE NONCLUSTERED ([Name] ASC)
);


GO
PRINT N'Creating [Evangelism].[fk_Note_ProspectId]...';


GO
ALTER TABLE [Evangelism].[tbl_Note]
ADD CONSTRAINT [fk_Note_ProspectId] FOREIGN KEY ([ProspectId]) REFERENCES [dbo].[tbl_Prospect] ([ProspectId]);


GO
PRINT N'Creating [Evangelism].[fk_Note_CreatedBy]...';


GO
ALTER TABLE [Evangelism].[tbl_Note]
ADD CONSTRAINT [fk_Note_CreatedBy] FOREIGN KEY ([CreatedBy]) REFERENCES [dbo].[tbl_Member] ([MemberId]);


GO
PRINT N'Creating [Evangelism].[fk_Note_UpdatedBy]...';


GO
ALTER TABLE [Evangelism].[tbl_Note]
ADD CONSTRAINT [fk_Note_UpdatedBy] FOREIGN KEY ([UpdatedBy]) REFERENCES [dbo].[tbl_Member] ([MemberId]);


GO
PRINT N'Creating [dbo].[fk_Address_BarangayId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_BarangayId] FOREIGN KEY ([BarangayId]) REFERENCES [dbo].[tbl_Barangay] ([BarangayId]);


GO
PRINT N'Creating [dbo].[fk_Address_DistrictId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_DistrictId] FOREIGN KEY ([DistrictId]) REFERENCES [dbo].[tbl_District] ([DistrictId]);


GO
PRINT N'Creating [dbo].[fk_Address_SuburbId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_SuburbId] FOREIGN KEY ([SuburbId]) REFERENCES [dbo].[tbl_Suburb] ([SuburbId]);


GO
PRINT N'Creating [dbo].[fk_Address_CityId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_CityId] FOREIGN KEY ([CityId]) REFERENCES [dbo].[tbl_City] ([CityId]);


GO
PRINT N'Creating [dbo].[fk_Address_ProvinceId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_ProvinceId] FOREIGN KEY ([ProvinceId]) REFERENCES [dbo].[tbl_Province] ([ProvinceId]);


GO
PRINT N'Creating [dbo].[fk_Address_StateId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_StateId] FOREIGN KEY ([StateId]) REFERENCES [dbo].[tbl_State] ([StateId]);


GO
PRINT N'Creating [dbo].[fk_Address_CountryId]...';


GO
ALTER TABLE [dbo].[tbl_Address]
ADD CONSTRAINT [fk_Address_CountryId] FOREIGN KEY ([CountryId]) REFERENCES [dbo].[tbl_Country] ([CountryId]);


GO
PRINT N'Creating [dbo].[fk_Church_AddressId]...';


GO
ALTER TABLE [dbo].[tbl_Church]
ADD CONSTRAINT [fk_Church_AddressId] FOREIGN KEY ([AddressId]) REFERENCES [dbo].[tbl_Address] ([AddressId]);


GO
PRINT N'Creating [dbo].[fk_Church_ContactId]...';


GO
ALTER TABLE [dbo].[tbl_Church]
ADD CONSTRAINT [fk_Church_ContactId] FOREIGN KEY ([ContactId]) REFERENCES [dbo].[tbl_Contact] ([ContactId]);


GO
PRINT N'Creating [dbo].[fk_Contact_ContactTypeId]...';


GO
ALTER TABLE [dbo].[tbl_Contact]
ADD CONSTRAINT [fk_Contact_ContactTypeId] FOREIGN KEY ([ContactTypeId]) REFERENCES [dbo].[tbl_ContactType] ([ContactTypeId]);


GO
PRINT N'Creating [dbo].[fk_Member_ChurchId]...';


GO
ALTER TABLE [dbo].[tbl_Member]
ADD CONSTRAINT [fk_Member_ChurchId] FOREIGN KEY ([ChurchId]) REFERENCES [dbo].[tbl_Church] ([ChurchId]);


GO
PRINT N'Creating [dbo].[fk_Member_AddressId]...';


GO
ALTER TABLE [dbo].[tbl_Member]
ADD CONSTRAINT [fk_Member_AddressId] FOREIGN KEY ([AddressId]) REFERENCES [dbo].[tbl_Address] ([AddressId]);


GO
PRINT N'Creating [dbo].[fk_Member_ContactId]...';


GO
ALTER TABLE [dbo].[tbl_Member]
ADD CONSTRAINT [fk_Member_ContactId] FOREIGN KEY ([ContactId]) REFERENCES 
[dbo].[tbl_Contact] ([ContactId]);


GO
PRINT N'Creating [dbo].[fk_Prospect_ChurchId]...';


GO
ALTER TABLE [dbo].[tbl_Prospect]
ADD CONSTRAINT [fk_Prospect_ChurchId] FOREIGN KEY ([ChurchId]) REFERENCES [dbo].[tbl_Church] ([ChurchId]);


GO
PRINT N'Creating [dbo].[fk_Prospect_AssignedTo]...';


GO
ALTER TABLE [dbo].[tbl_Prospect]
ADD CONSTRAINT [fk_Prospect_AssignedTo] FOREIGN KEY ([AssignedTo]) REFERENCES [dbo].[tbl_Member] ([MemberId]);


GO
PRINT N'Creating [dbo].[fk_Prospect_AddressId]...';


GO
ALTER TABLE [dbo].[tbl_Prospect]
ADD CONSTRAINT [fk_Prospect_AddressId] FOREIGN KEY ([AddressId]) REFERENCES [dbo].[tbl_Address] ([AddressId]);


GO
PRINT N'Creating [dbo].[fk_Prospect_ContactId]...';


GO
ALTER TABLE [dbo].[tbl_Prospect]
ADD CONSTRAINT [fk_Prospect_ContactId] FOREIGN KEY ([ContactId]) REFERENCES [dbo].[tbl_Contact] ([ContactId]);


GO
PRINT N'Creating [dbo].[fk_Prospect_ProspectStatusId]...';


GO
ALTER TABLE [dbo].[tbl_Prospect]
ADD CONSTRAINT [fk_Prospect_ProspectStatusId] FOREIGN KEY ([ProspectStatusId]) REFERENCES [dbo].[tbl_ProspectStatus] ([ProspectStatusId]);


GO
DECLARE @VarDecimalSupported AS BIT;

SELECT @VarDecimalSupported = 0;

IF ((ServerProperty(N'EngineEdition') = 3)
AND (((@@microsoftversion / power(2, 24) = 9)
      AND (@@microsoftversion & 0xffff >= 3024))
     OR ((@@microsoftversion / power(2, 24) = 10)
         AND (@@microsoftversion & 0xffff >= 1600))))
SELECT @VarDecimalSupported = 1;

IF (@VarDecimalSupported > 0)
BEGIN
    EXECUTE sp_db_vardecimal_storage_format N'$(DatabaseName)', 'ON';
END


GO
PRINT N'Update complete.';


GO