我在sql sever 2000中用生成SQL脚本的方法生成了一张表的SQL脚本,但我把这个SQL脚本放在SQL2008中运行后生成不了主键,这是为什么;但我在SQL sever 2000中没有问题

解决方案 »

  1.   

    不好意思,刚才发现在SQL SERVER 2000中也是一样的,我用企业管理器生成的脚本就没有包括主键,怎样才能在生成的脚本中包括进去呢
      

  2.   

    CREATE TABLE tb(id INT PRIMARY KEY )
      

  3.   


    --SQL2008下的测试
    --建表语句
    create table test123
    (
    id int primary key not null  --主键
    )--导出的CREATE脚本,有主键约束
    CREATE TABLE [dbo].[test123](
    [id] [int] NOT NULL,
    PRIMARY KEY CLUSTERED 
    (
    [id] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]GO--不知道2000下导出的脚本是什么样子的。看情况应该是没有主键约束。不知到怎么解决
      

  4.   

    这个?参考:示例
    A. 使用 PRIMARY KEY 约束
    下例显示在示例数据库 pubs 的 jobs 表中,job_id 列中具有聚集索引的 PRIMARY KEY 约束的列定义;此例由系统提供约束名。job_id   smallint
          PRIMARY KEY CLUSTERED下例显示如何为 PRIMARY KEY 约束提供名称。此约束用于 employee 表中的 emp_id 列。此列基于用户定义数据类型。emp_id   empid
          CONSTRAINT PK_emp_id PRIMARY KEY NONCLUSTERED
      

  5.   

    一个完整的实例USE [JIT]
    GO
    /****** 物件:  Table [dbo].[Ac_codemanage]    指令碼日期: 12/23/2010 09:05:07 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[Ac_codemanage](
    [codeid] [int] IDENTITY(1,1) NOT NULL,
    [CodeType] [varchar](30) NULL,
    [CodeNum] [int] NULL,
    [CodeText] [varchar](80) NULL,
    [CodeMemo] [varchar](30) NULL,
    [InputMan] [varchar](20) NULL,
    [InputDate] [datetime] NULL,
    [InputDepart] [varchar](20) NULL,
     CONSTRAINT [PK_Ac_codemanage] PRIMARY KEY CLUSTERED 
    (
    [codeid] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]GO
    SET ANSI_PADDING OFF
    有建主键/外键/索引/约束
      

  6.   

    在生成SQL脚本中,选项里;