【发布时间】:2014-04-17 22:31:51
【问题描述】:
我正在尝试使用 Sql Server Management Studio 向 Sql Server 中的现有表添加主键/自动增量。在 MySql 客户端这很容易,SSMS 不合作;我只能添加可空字段,如果我尝试将可空字段设为 Primary,它不会让我这样做。
【问题讨论】:
-
您是否尝试在 SSMS 设计视图中执行此操作?
我正在尝试使用 Sql Server Management Studio 向 Sql Server 中的现有表添加主键/自动增量。在 MySql 客户端这很容易,SSMS 不合作;我只能添加可空字段,如果我尝试将可空字段设为 Primary,它不会让我这样做。
【问题讨论】:
您可以添加一个标识列,它会自动分配一个值:
-- Create test table without primary key
CREATE TABLE dbo.Person
(
Name varchar(30) null
)
INSERT INTO dbo.Person (Name)
SELECT 'Abe One'
UNION ALL
SELECT 'Bee Two'
GO
-- Add new identity column
ALTER TABLE dbo.Person ADD
ID int NOT NULL IDENTITY (1, 1)
GO
-- Make it the primary key
ALTER TABLE dbo.Person ADD CONSTRAINT
PK_Person PRIMARY KEY CLUSTERED
(
ID
)
GO
或者您可以使用 Management Studio 可视化设计器。右键单击表名,然后从菜单中选择“设计”。更多详情见:http://technet.microsoft.com/en-us/library/ms190634(v=sql.105).aspx
【讨论】: