/*老大的方法*/ --創建環境 CREATE TABLE t1(ID int IDENTITY,A int) GO --插入數據 INSERT t1 VALUES(1) GO--1. 將IDENTITY列轉換成普通列 ALTER TABLE t1 ADD ID_temp int GOUPDATE t1 SET ID_temp=ID ALTER TABLE t1 DROP COLUMN ID EXEC sp_rename N't1.ID_temp',N'ID',N'COLUMN' INSERT t1 VALUES(100,9) GO--2. 將普通列轉換成IDENTITY列 CREATE TABLE t1_temp(ID int,A int IDENTITY) SET IDENTITY_INSERT t1_temp ON INSERT t1_temp(ID,A) SELECT * FROM t1 SET IDENTITY_INSERT t1_temp OFF DROP TABLE T1 GOEXEC sp_rename N't1_temp',N't1' INSERT t1 VALUES(109999) GO--結果 SELECT * FROM t1 /* ID A ----------------- ----------- 1 1 100 9 109999 10 --*/
唔... 企业管理器也是这么做的... 那是不是用ALTER TABLE 无法直接实现?
select a.*,id=identity(int,1,1) into newtablename from t_set a
--創建環境
CREATE TABLE t1(ID int IDENTITY,A int)
GO
--插入數據
INSERT t1 VALUES(1)
GO--1. 將IDENTITY列轉換成普通列
ALTER TABLE t1 ADD ID_temp int
GOUPDATE t1 SET ID_temp=ID
ALTER TABLE t1 DROP COLUMN ID
EXEC sp_rename N't1.ID_temp',N'ID',N'COLUMN'
INSERT t1 VALUES(100,9)
GO--2. 將普通列轉換成IDENTITY列
CREATE TABLE t1_temp(ID int,A int IDENTITY)
SET IDENTITY_INSERT t1_temp ON
INSERT t1_temp(ID,A) SELECT * FROM t1
SET IDENTITY_INSERT t1_temp OFF
DROP TABLE T1
GOEXEC sp_rename N't1_temp',N't1'
INSERT t1 VALUES(109999)
GO--結果
SELECT * FROM t1
/*
ID A
----------------- -----------
1 1
100 9
109999 10
--*/
那是不是用ALTER TABLE 无法直接实现?