如何使用SQL Server Management Studio生成复合密钥?

如何使用SQL Server Management Studio生成复合密钥?,sql,sql-server,tsql,ssms,key,Sql,Sql Server,Tsql,Ssms,Key,如何使用SQL Server Management Studio生成复合密钥 我希望两个INT列在设计模式下形成表的标识(唯一)(右键单击表选择修改)高亮显示两列右键单击并选择设置主键在表设计视图中高亮显示两行,然后单击键图标,它们现在将成为复合主键 我不确定您的问题,但每个表中只有一列可能是标识列,而不是两列都是标识列。以下是一些代码: create table my_table ( id_part1 int not null, id_part2 int not null,

如何使用SQL Server Management Studio生成复合密钥


我希望两个INT列在设计模式下形成表的标识(唯一)(右键单击表选择修改)高亮显示两列右键单击并选择设置主键在表设计视图中高亮显示两行,然后单击键图标,它们现在将成为复合主键


我不确定您的问题,但每个表中只有一列可能是标识列,而不是两列都是标识列。

以下是一些代码:

create table my_table (
    id_part1 int not null,
    id_part2 int not null,
    primary key (id_part1, id_part2)
)
-- 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
我将约束作为单独的语句添加,因为我假定您的表已经创建。

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

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

    按住Ctrl键高亮显示左侧表格边距中的两列或多列

    点击顶部标准菜单栏上的小“键”

    你完了


    :-)

    我想这个答案很合适,因为您可以在SSMS的查询窗口中运行它…;)为FTW编写脚本,并用于显式命名!外部
    ADD PRIMARY KEY
    和内部
    PRIMARY KEY
    定义将为键提供随机名称,如果没有db图表+表格,这可能会让bajingo感到痛苦。要突出显示多个字段,请单击“column name”和“data type”等列前面的块。按住Ctrl/Shift键并单击列名字段实际上不会执行任何操作。因此,如果一个是字符串,另一个是int,则不可能执行此操作?似乎不是……我会投反对票,但后来我意识到OP特别要求如何在SSMS中做到这一点。您应该始终为数据库更改编写脚本。如果您使用这样的工具,您将永远无法了解如何为数据库进行更改yourself@JonnyLeeds你的马骑得很高。如果这是人们喜欢的,GUI有什么问题吗?@leinad13我今天一定过得很糟糕!但主要问题是它们不可重复,这通常意味着人们正在进行不受控制的临时更改和调整,以修复数据库/模式问题。这是一个非常糟糕的迹象-它们没有文档化(例如,通过将要修复的代码写下来并签入版本控制和/或使用一个工具自动将正确的更改应用于任何数据库版本),如果您有多个安装,那么一旦数据库没有相同的模式,您就会遇到严重的问题
    create table myTable 
    (
        Column1 int not null,
        Column2 int not null
    )
    GO
    
    
    ALTER TABLE myTable
        ADD  PRIMARY KEY (Column1,Column2)
    GO