添加主键后如何重新构建表



我想为一个现有的表添加一个主键。我认为最好的方法是在临时表中执行SELECT INTO,删除并创建表,然后从临时表中创建表INSERT INTO。这会产生什么问题吗?

这是最佳实践吗?

SET XACT_ABORT ON
--SAVE DATA
SELECT * INTO #TempTable
FROM dbo.OldTable AS tt
-- Drop and Create dbo.OldTable
-- Restore data
INSERT INTO dbo.OldTable (Column1, Column2, Column3)
SELECT
    tt.Column1,
    tt.Column2,
    tt.Column3
FROM #TempTable AS tt
COMMIT TRANSACTION -- roll back in case there are any FK issues
这个数据库是在SQL Server 2008中实现的。

您不必重新创建表。使用以下脚本:

ALTER TABLE dbo.YourTable ADD PRIMARY KEY (KeyColumn1,KeyColumn2);
    创建新表
  1. 删除旧表
  2. 重命名新文件

最好的方法是添加PK "现场",因为这将节省处理时间和使用的日志空间。

所以只需执行以下操作:

alter table dbo.OldTable add constraint PK_OldTable primary key (xxx)

相关内容

  • 没有找到相关文章

最新更新