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

Posted

技术标签:

【中文标题】如何使用 SQL Server Management Studio 创建复合键?【英文标题】:How do I make a composite key with SQL Server Management Studio? 【发布时间】:2010-12-05 11:00:20 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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

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

你已经完成了..

:-)

【讨论】:

【参考方案2】:

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

【讨论】:

要突出显示多个字段,请单击“列名”和“数据类型”等列前面的块。 Ctrl/Shift+单击列名字段实际上不会做任何事情。 那么如果一个是字符串,另一个是int,是不可能的?好像不是…… 我会对此投反对票,但后来我意识到 OP 专门询问如何在 SSMS 中执行此操作。您应该始终编写数据库更改脚本 + 如果您使用这样的工具,您将永远无法学会如何自己进行更改 @JonnyLeeds 那是一匹非常高的马。如果这是人们喜欢的,那么 GUI 有什么问题? @leinad13 我一定过得很糟糕!但主要问题是它们不可重复,这通常意味着人们正在进行不受控制的临时更改和调整以修复数据库/模式问题。这是一个非常糟糕的迹象 - 它们没有记录(例如,通过将要修复的代码写下来并签入版本控制和/或拥有一个自动将正确更改应用于任何数据库版本的工具)并且如果您有多个安装,那么一旦数据库不具有相同的架构,您就会遇到严重的麻烦【参考方案3】:
create table myTable 
(
    Column1 int not null,
    Column2 int not null
)
GO


ALTER TABLE myTable
    ADD  PRIMARY KEY (Column1,Column2)
GO

【讨论】:

【参考方案4】:

这里有一些代码:

-- 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

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

【讨论】:

我想这个答案很合适,因为您可以在 SSMS 的查询窗口中运行它... ;) 脚本 FTW,并用于显式命名!外部ADD PRIMARY KEY 和内部PRIMARY KEY 定义将为键提供随机名称,如果您没有数据库图+表,这会使bajingo 很难确定属于哪个位置。【参考方案5】:

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

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

【讨论】:

【参考方案6】:
create table my_table (
    id_part1 int not null,
    id_part2 int not null,
    primary key (id_part1, id_part2)
)

【讨论】:

【参考方案7】:

在设计模式下(右键单击表格选择修改)突出显示两个列右键单击并选择设置主键

【讨论】:

以上是关于如何使用 SQL Server Management Studio 创建复合键?的主要内容,如果未能解决你的问题,请参考以下文章

您如何使用 SQL Server CE 和 SQL Server 2008 Express?

如何使用sql server数据库中的标量值函数

如何使用 SQL Server Management Studio (2008) 在 SQL Server Compact Edition 中创建列

如何解决sql server18456错误

sql server 中如何插入一条时间记录

如何使用Spark SQL 的JDBC server