Sql server 将主键设置为现有表
我有一张有15张唱片的桌子。该表没有任何主键约束 现在我想在现有列中设置一个主键。如何将具有主键约束的列设置为现有表?有人可以提供查询来更改列吗Sql server 将主键设置为现有表,sql-server,postgresql,Sql Server,Postgresql,我有一张有15张唱片的桌子。该表没有任何主键约束 现在我想在现有列中设置一个主键。如何将具有主键约束的列设置为现有表?有人可以提供查询来更改列吗 它适用于SQL server 2008。更改语法以将主键约束添加到现有表中 ALTER TABLE table_name ADD CONSTRAINT Primarykeyname PRIMARY KEY (column_name); 指定要设置主键的列名。列的值应该是唯一的。这是一个可运行的脚本。试试这个: IF NOT EXISTS(SELEC
它适用于SQL server 2008。更改语法以将主键约束添加到现有表中
ALTER TABLE table_name
ADD CONSTRAINT Primarykeyname PRIMARY KEY (column_name);
指定要设置主键的列名。列的值应该是唯一的。这是一个可运行的脚本。试试这个:
IF NOT EXISTS(SELECT 'X'
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_NAME = 'PRIMARY_KEY_NAME'
AND TABLE_NAME = 'TABLE_NAME')
ALTER TABLE TABLE_NAME
ADD CONSTRAINT PRIMARY_KEY_NAME PRIMARY KEY(COLUMN_NAME_TO_BE_ADDED_AS_PRIMARY_KEY)
GO
设置主键与下面的查询一样简单,但列应声明为NOTNULL,如果任何现有值违反主键约束,则查询可能不会成功
create table
#temp
(
id int
)
ALTER TABLE #temp
ADD CONSTRAINT id_pk PRIMARY KEY (id)
上述措施将失败。您必须至少在SQLServer2005中首先运行以下查询
alter table #temp
alter column id int not null
在添加主键约束之前,现有记录应该是唯一的。这是一项基本操作。在这里提问之前,请尝试使用谷歌。如果你这样做了,你会发现你的问题没有显示出任何研究成果