如何使用SQL Server Management Studio创建复合键?

mrb*_*lah 160 sql t-sql sql-server ssms key

如何使用SQL Server Management Studio创建复合键?

我想要两个INT列来形成表的标识(唯一)

Cor*_*ory 348

在此输入图像描述

  1. 打开设计表选项卡
  2. 突出显示两个INT字段(Ctrl/Shift +单击第一列中的灰色块)
  3. 右键单击 - >设置主键

  • 我希望我可以两次投票 - 图像是一个很好的触摸. (21认同)
  • 要突出显示多个字段,请单击"列名称"和"数据类型"列等前面的块.Ctrl/Shift +单击列名称字段实际上不会执行任何操作. (3认同)
  • 所以如果一个是字符串而另一个是int,那是不可能的?似乎不是...... (3认同)
  • 我会向下推,但后来我意识到OP特别要求在SSMS中如何做到这一点.您应始终编写数据库更改脚本+如果您使用此类工具,您将永远不会学习如何为自己进行更改 (3认同)
  • @ leinad13我一定有过糟糕的一天!但主要问题是它们不可重复,通常意味着人们正在进行不受控制的临时更改和调整以修复数据库/架构问题.这是一个非常糟糕的标志 - 它们没有文档记录(例如,通过将代码修复下来并检入版本控制和/或具有自动将正确的更改应用于数据库版本的工具)并且如果您有多个安装然后,一旦数据库没有相同的架构,你就会遇到严重问题 (3认同)
  • @JonnyLeeds那里有一匹非常高的马.如果那是人们喜欢的,那么GUI有什么问题? (2认同)

Roa*_*rth 63

这是一些代码:

-- Sample Table
create table myTable 
(
    Column1 int not null,
    Column2 int not null
)
GO

-- Add Constraint
ALTER TABLE myTable
    ADD CONSTRAINT pk_myConstraint PRIMARY KEY (Column1,Column2)
GO
Run Code Online (Sandbox Code Playgroud)

我将约束添加为单独的语句,因为我假设您的表已经创建.

  • 脚本FTW,以及明确的命名!外部的"ADD PRIMARY KEY"和内部的"PRIMARY KEY"定义将为键提供随机名称,如果您没有db diagram + tables,这可能会让bajingo感到痛苦. (2认同)

yfe*_*lum 35

create table my_table (
    id_part1 int not null,
    id_part2 int not null,
    primary key (id_part1, id_part2)
)
Run Code Online (Sandbox Code Playgroud)


Gra*_*tzy 14

在设计模式(右键单击表选择修改)中,右键单击两列,然后选择设置主键


小智 8

在SQL Server Management Studio中打开表设计器(右键单击表并选择"设计")

按住Ctrl键可突出显示左侧表边距中的两列或更多列

点击顶部标准菜单栏上的小'Key'

你完成了..

:-)


小智 6

create table myTable 
(
    Column1 int not null,
    Column2 int not null
)
GO


ALTER TABLE myTable
    ADD  PRIMARY KEY (Column1,Column2)
GO
Run Code Online (Sandbox Code Playgroud)


KM.*_*KM. 5

突出显示表设计视图中的两行并单击键图标,它们现在将成为复合主键。

我不确定你的问题,但每个表只有一列可能是 IDENTITY 列,而不是两者。