我有一张包含15条记录的表格。该表没有任何主键约束。
现在我想在现有列中设置主键。如何设置具有主键约束的列到现有表?有人可以提供查询来改变列吗?
适用于SQL Server 2008。
答案 0 :(得分:1)
这是一个可运行的脚本。试试这个:
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
答案 1 :(得分:0)
更改语法以将主键约束添加到现有表...
ALTER TABLE table_name
ADD CONSTRAINT Primarykeyname PRIMARY KEY (column_name);
指定要为其设置主键的列名称。列的值应该是唯一的。
答案 2 :(得分:0)
设置主键很简单,如下面的查询,但是应该声明列不为null,如果任何现有值违反主键约束,则查询可能不会成功。
create table
#temp
(
id int
)
ALTER TABLE #temp
ADD CONSTRAINT id_pk PRIMARY KEY (id)
以上将失败。您必须至少在SQL Server 2005中首先运行以下查询。
alter table #temp
alter column id int not null