将主键添加到共享数据库服务器上的大表

时间:2009-02-10 16:26:24

标签: sql ssms

我有一个大型的邮政编码数据库,用于邻近搜索。大约有100万条记录。不知怎的,我没有将主键添加到表中,现在我必须添加它,因为由于全表扫描,搜索大约需要3秒。当我去生成一个脚本以在SSMS中添加它时,操作会超时,因为它正在创建一个新表并且对数据很重要。有什么想法吗?

4 个答案:

答案 0 :(得分:4)

确保SSMS选项/查询执行中的执行超时设置为0(无超时)。然后使用类似于以下的查询,将表/列/键名替换为您的。根据需要调整参数。

ALTER TABLE tableName WITH NOCHECK 
ADD CONSTRAINT PK_tableName PRIMARY KEY CLUSTERED (columnName)
WITH (FILLFACTOR = 75, ONLINE = ON, PAD_INDEX = ON)

Reference

答案 1 :(得分:1)

生成脚本并将其粘贴到查询中并在那里运行。确保您的SSMS未设置为在选项中执行超时。

答案 2 :(得分:0)

为什么不创建一个独特的索引?

答案 3 :(得分:-2)

ALTER TABLE ADD PRIMARY KEY(等等......)

应该在MySQL中工作。