我想添加一個主鍵到現有的表。我認爲最好的方法是將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中實現
哪個RDBMS?它是否支持自動遞增鍵? –
我假設你是指DB生成的PK?例如。一個mysql自動增量或一個pgsql序列(或類似的)?如果是這樣,那麼我認爲臨時表是最簡單的方法,如果它適合您的數據大小。 –
如果它支持像Oracle或PostgreSQL這樣的序列,則它在SQL Server 2008 –