Use the power of schemas. This way your naming of columns and keys separate easily.
The power lies in the CREATE SCHEMA command. Once the archive (schema or shorter "arch") is created the option is to move the table with ALTER SCHEMA. I have never tested this approach on such a big table. I am not sure if this recreates the table or just updates the schema_id in the system tables.
Dummy code:
CREATE TABLE dbo.Test
(
testcolumn int NOT NULL
)
;
INSERT INTO dbo.Test
VALUES (100000)
;
ALTER SCHEMA conf
TRANSFER dbo.Test
;
(*) In my database the schema "conf" already exists.
Using schemas allows to re-use all existing columns. Therefore apart from the change of ID creation from int to bigint all existing code and references keeps working.
On another note for the archive: Drop all your foreign key referencing on the archive table once moved to the new schema.
Additionally there is the option to move the table in whole to a read only file group to prevent it from being manipulated later. However this induces a data transfer between the file groups so best done all the work is finished and downtime can be scheduled.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…