sqlserver设置主键自增

sqlserver设置主键自增,第1张

创建表的时候可以 比如ID列自增

create table T1

(

id int identity(1,1),

ccode varchar(10),

cname varchar(100)

)

还可以使用

函数和触发器等方式变相实现自增列...

我举个触发器的例子:

--环境

create

table

test_5

(

id

int

primary

key

not

null,

value

int

)

--保存最大序列值的表

create

table

Sequence

(

rn

int

)

insert

Sequence

select

0

go

create

trigger

tr_test_5

on

test_5

Instead

of

insert

as

begin

declare

@n

int

update

Sequence

set

rn=rn+@@rowcount,@n=rn

insert

test_5

select

@n+row_number()over(order

by

getdate()),value

from

inserted

end

go

insert

test_5(value)

select

1

union

select

2

union

select

3

select

*

from

test_5

/*

id

value

-----------

-----------

1

1

2

2

3

3*/

第二个问题:

给你个例子:

--创建测试表

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

--*/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11728445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存