也可以用触发器解决. CREATE TRIGGER TABLE_ID on TABLE for insert as declare @id int begin select @id=(select case when max(z.id) is not null then max(z.id)+1 else 1 end from TABLE z) update z set z.id=@id from YS_DJCLB z,inserted i where z.id=i.id return end
sql server 中有一个和access一样的“自动编号”类型,将字段设为identity即可。
SQL SERVER 中有"自动编号”数据类型,可以对每一条写入的记录生成唯一不变的记录号. 只要定义字段属性为 integer IDENTITY 即可 如下:CREATE TABLE dbo.test (iden_id integer IDENTITY NOT NULL, --系统流水号 user_id varchar(20) NOT NULL , CONSTRAINT test_p PRIMARY KEY NONCLUSTERED (iden_id)) ;系统对每个user_id 都会产生一个唯一的系统流水号,且数据类型为 Integer型.
sql server 7.0中定义一个不为空的字段将“识别”选中,填写识别种子(即从多少开始计数)和识别递增量就可以实现自动编号。注:在程序中不对该字段进行操作。
CREATE TRIGGER TABLE_ID
on TABLE for insert as
declare @id int
begin
select @id=(select case when max(z.id) is not null then max(z.id)+1
else 1
end
from TABLE z)
update z set z.id=@id from YS_DJCLB z,inserted i where z.id=i.id
return
end
只要定义字段属性为 integer IDENTITY 即可
如下:CREATE TABLE dbo.test (iden_id integer IDENTITY NOT NULL, --系统流水号
user_id varchar(20) NOT NULL
, CONSTRAINT test_p
PRIMARY KEY NONCLUSTERED
(iden_id)) ;系统对每个user_id 都会产生一个唯一的系统流水号,且数据类型为 Integer型.