服务器: 消息 170,级别 15,状态 1,行 19
第 19 行: '(' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 17
第 17 行: '(' 附近有语法错误。
服务器: 消息 208,级别 16,状态 1,行 1
对象名 'sys.foreign_keys' 无效。

解决方案 »

  1.   

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PetInfo]') AND type in (N'U'))
    BEGIN
    CREATE TABLE [dbo].[PetInfo](
    [pet_id] [int] IDENTITY(1,1) NOT NULL,
    [pet_name] [varchar](50) NOT NULL,
    [pet_sex] [varchar](2) NULL CONSTRAINT [DF__PetInfo__pet_sex__77BFCB91]  DEFAULT ('小'),
    [pet_strength] [int] NULL CONSTRAINT [DF__PetInfo__pet_str__78B3EFCA]  DEFAULT ('0'),
    [pet_cute] [int] NULL CONSTRAINT [DF__PetInfo__pet_cut__79A81403]  DEFAULT ('0'),
    [pet_love] [int] NULL CONSTRAINT [DF__PetInfo__pet_lov__7A9C383C]  DEFAULT ('0'),
    [pet_intro] [varchar](7000) NULL CONSTRAINT [DF__PetInfo__pet_int__7B905C75]  DEFAULT ('我家的小宝贝,可乖啦!'),
    [pet_owner_name] [varchar](30) NULL CONSTRAINT [DF__PetInfo__pet_own__7C8480AE]  DEFAULT (NULL),
    [pet_owner_email] [varchar](100) NULL CONSTRAINT [DF__PetInfo__pet_own__7D78A4E7]  DEFAULT (NULL),
    [pet_password] [varchar](30) NULL CONSTRAINT [DF__PetInfo__pet_pas__7E6CC920]  DEFAULT (NULL),
    [pet_pic] [varchar](300) NULL CONSTRAINT [DF__PetInfo__pet_pic__7F60ED59]  DEFAULT (NULL),
    [pet_type] [int] NULL CONSTRAINT [DF__PetInfo__pet_typ__00551192]  DEFAULT (NULL),
     CONSTRAINT [PK__PetInfo__76CBA758] PRIMARY KEY CLUSTERED 
    (
    [pet_id] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
    END
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PetDiary]') AND type in (N'U'))
    BEGIN
    CREATE TABLE [dbo].[PetDiary](
    [diary_id] [int] IDENTITY(1,1) NOT NULL,
    [diary_pet_id] [int] NULL CONSTRAINT [DF__petdiary__diary___300424B4]  DEFAULT (NULL),
    [diary_date] [datetime] NULL CONSTRAINT [DF__petdiary__diary___30F848ED]  DEFAULT (NULL),
    [diary_title] [varchar](300) NULL CONSTRAINT [DF__petdiary__diary___31EC6D26]  DEFAULT (NULL),
    [diary_weather] [varchar](30) NULL CONSTRAINT [DF__petdiary__diary___32E0915F]  DEFAULT ('晴'),
    [diary_context] [varchar](7000) NULL CONSTRAINT [DF__petdiary__diary___33D4B598]  DEFAULT (NULL),
    [diary_is_public] [bit] NULL CONSTRAINT [DF__petdiary__diary___34C8D9D1]  DEFAULT (NULL),
    [diary_last_modify] [datetime] NULL CONSTRAINT [DF__petdiary__diary___35BCFE0A]  DEFAULT (NULL),
    [diary_author] [varchar](30) NULL CONSTRAINT [DF__petdiary__diary___36B12243]  DEFAULT (NULL),
    [diary_author_email] [varchar](200) NULL CONSTRAINT [DF__petdiary__diary___37A5467C]  DEFAULT (NULL),
    PRIMARY KEY CLUSTERED 
    (
    [diary_id] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
    END
    GO
    IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_PetDiary_PetInfo]') AND parent_object_id = OBJECT_ID(N'[dbo].[PetDiary]'))
    ALTER TABLE [dbo].[PetDiary]  WITH NOCHECK ADD  CONSTRAINT [FK_PetDiary_PetInfo] FOREIGN KEY([diary_pet_id])
    REFERENCES [dbo].[PetInfo] ([pet_id])
    NOT FOR REPLICATION 
      

  2.   

    sys.foreign_keys应该是2005才支持的,如果是2000,可以采用dbo.sysconstraints脚本的修改方法是
    将sys.foreign_keys替换为dbo.sysconstraints
    将object_id,注意object_id()函数名不要变,改的是字段名,替换为constid
    将parent_object_id替换为id
      

  3.   

    将sys.foreign_keys替换为dbo.sysconstraints
    还抱着个错:
    服务器: 消息 170,级别 15,状态 1,行 19
    第 19 行: '(' 附近有语法错误。
    服务器: 消息 170,级别 15,状态 1,行 17
    第 17 行: '(' 附近有语法错误。
    源码:
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PetInfo]') AND type in (N'U'))
    BEGIN
    CREATE TABLE [dbo].[PetInfo](
    [pet_id] [int] IDENTITY(1,1) NOT NULL,
    [pet_name] [varchar](50) NOT NULL,
    [pet_sex] [varchar](2) NULL CONSTRAINT [DF__PetInfo__pet_sex__77BFCB91]  DEFAULT ('小'),
    [pet_strength] [int] NULL CONSTRAINT [DF__PetInfo__pet_str__78B3EFCA]  DEFAULT ('0'),
    [pet_cute] [int] NULL CONSTRAINT [DF__PetInfo__pet_cut__79A81403]  DEFAULT ('0'),
    [pet_love] [int] NULL CONSTRAINT [DF__PetInfo__pet_lov__7A9C383C]  DEFAULT ('0'),
    [pet_intro] [varchar](7000) NULL CONSTRAINT [DF__PetInfo__pet_int__7B905C75]  DEFAULT ('我家的小宝贝,可乖啦!'),
    [pet_owner_name] [varchar](30) NULL CONSTRAINT [DF__PetInfo__pet_own__7C8480AE]  DEFAULT (NULL),
    [pet_owner_email] [varchar](100) NULL CONSTRAINT [DF__PetInfo__pet_own__7D78A4E7]  DEFAULT (NULL),
    [pet_password] [varchar](30) NULL CONSTRAINT [DF__PetInfo__pet_pas__7E6CC920]  DEFAULT (NULL),
    [pet_pic] [varchar](300) NULL CONSTRAINT [DF__PetInfo__pet_pic__7F60ED59]  DEFAULT (NULL),
    [pet_type] [int] NULL CONSTRAINT [DF__PetInfo__pet_typ__00551192]  DEFAULT (NULL),
     CONSTRAINT [PK__PetInfo__76CBA758] PRIMARY KEY CLUSTERED 
    (
    [pet_id] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
    END
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PetDiary]') AND type in (N'U'))
    BEGIN
    CREATE TABLE [dbo].[PetDiary](
    [diary_id] [int] IDENTITY(1,1) NOT NULL,
    [diary_pet_id] [int] NULL CONSTRAINT [DF__petdiary__diary___300424B4]  DEFAULT (NULL),
    [diary_date] [datetime] NULL CONSTRAINT [DF__petdiary__diary___30F848ED]  DEFAULT (NULL),
    [diary_title] [varchar](300) NULL CONSTRAINT [DF__petdiary__diary___31EC6D26]  DEFAULT (NULL),
    [diary_weather] [varchar](30) NULL CONSTRAINT [DF__petdiary__diary___32E0915F]  DEFAULT ('晴'),
    [diary_context] [varchar](7000) NULL CONSTRAINT [DF__petdiary__diary___33D4B598]  DEFAULT (NULL),
    [diary_is_public] [bit] NULL CONSTRAINT [DF__petdiary__diary___34C8D9D1]  DEFAULT (NULL),
    [diary_last_modify] [datetime] NULL CONSTRAINT [DF__petdiary__diary___35BCFE0A]  DEFAULT (NULL),
    [diary_author] [varchar](30) NULL CONSTRAINT [DF__petdiary__diary___36B12243]  DEFAULT (NULL),
    [diary_author_email] [varchar](200) NULL CONSTRAINT [DF__petdiary__diary___37A5467C]  DEFAULT (NULL),
    PRIMARY KEY CLUSTERED 
    (
    [diary_id] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
    END
    GO
    IF NOT EXISTS (SELECT * FROM dbo.sysconstraints WHERE object_id = OBJECT_ID(N'[dbo].[FK_PetDiary_PetInfo]') AND id = OBJECT_ID(N'[dbo].[PetDiary]'))
    ALTER TABLE [dbo].[PetDiary]  WITH NOCHECK ADD  CONSTRAINT [FK_PetDiary_PetInfo] FOREIGN KEY([diary_pet_id])
    REFERENCES [dbo].[PetInfo] ([pet_id])
    NOT FOR REPLICATION