【问题标题】:Specify PK name during table creation创建表时指定 PK 名称
【发布时间】:2010-12-21 12:25:36
【问题描述】:

在 MSSQL 中有一种方法可以为 PK 约束指定名称,这样 MSSQL 就不会像这样提供随机生成的 PK 名称:

PK__Addresse__3214EC074E88ABD4

我现在看到的唯一方法是首先创建表,然后发出 ALTER 命令来重命名 PK。如果我能一口气做到这一点会更容易。

【问题讨论】:

    标签: sql-server primary-key constraints create-table


    【解决方案1】:

    是的。这是 SSMS 生成的语法:

    CREATE TABLE [Address] (
        [ID] [int] IDENTITY(1,1) NOT NULL,
        << columns here >>,
        CONSTRAINT [PK_Address] 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
    

    【讨论】:

      【解决方案2】:

      创建表时

      CREATE TABLE MyTable
      (
         Id INT NOT NULL      
         CONSTRAINT PK_MyTable PRIMARY KEY (Id)   
      )
      

      如果您需要更改表格并添加主要约束

      ALTER TABLE  MyTable
      ADD CONSTRAINT PK_MyTable PRIMARY KEY (Id)
      

      希望对你有帮助

      【讨论】:

      • 我会使用 PK_MyTable。约束名称(PK、FK、CK、DF 等)在 sys.objects 中必须是唯一的,因此您不能将“PK_ID”用于另一个表。
      • 是的,先生.. 我理解我的错误。谢谢
      猜你喜欢
      • 2017-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多