请选择 进入手机版 | 继续访问电脑版

悍铭论坛

 找回密码
 立即注册
查看: 44501|回复: 2

【标识列】标识列与普通列互相转换的示例

[复制链接]

89

主题

442

帖子

516

积分

刺史

Rank: 4

积分
516
发表于 2015-11-22 05:43:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

--创建测试表
CREATE TABLE t1(ID int IDENTITY,A int)
GO
--插入记录
INSERT t1 VALUES(1)
GO

--1. 将IDENTITY(标识)列变为普通列
ALTER TABLE t1 ADD ID_temp int
GO

UPDATE 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. 将普通列变为标识列
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
GO

EXEC sp_rename N't1_temp',N't1'
INSERT t1 VALUES(109999)
GO

--显示处理结果
SELECT * FROM t1
/*--结果:
ID          A
----------------- -----------
1           1
100         9
109999      10
--*/



93

主题

435

帖子

551

积分

刺史

Rank: 4

积分
551
发表于 2015-11-22 05:43:51 | 显示全部楼层

IDENTITY是一个表级的对象。
SQL Server 2012新增了一个数据库级的序列号函数Sequence
http://jimshu.blog.51cto.com/3171847/1175998

70

主题

430

帖子

516

积分

刺史

Rank: 4

积分
516
发表于 2015-11-22 05:44:40 | 显示全部楼层

sql server 2008以后,可以通过switch table来转换,可参考:
http://qianzhang.blog.51cto.com/317608/1429898
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|悍铭论坛 ( 滇ICP备13006366号-1 )

GMT+8, 2017-7-22 12:40 , Processed in 0.181194 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表