散分!!!
现有一个表
CCNF(NO integer Null,Barcode Varchar(30) Null,Name varchar(30) Null)
怎么样让字段NO的值从X递增到X+N.
也就是说第一条记录字段No值为50,
下一条记录的字段No值则为51,
再下一条则为52,
一直如此直到最后.如何实现?
---------------------------------------------------------------
declare @no int
set @no=49
update CCNF set no=@no,@no=@no+1
---------------------------------------------------------------
declare @i int
select @i=0
update ccnf set no=no+@i,@i=@i+1
---------------------------------------------------------------
写个INSERT存储过程就可以啊
每加一条执行一次,自增一
DECLARE @maxid int
SELECT @maxid=MAX(NO) FROM CCNF
IF(@maxid<100 or @maxid IS NULL )
BEGIN
SELECT @maxid=50
END
SELECT @maxid=@maxid+1
DECLARE @tmpID int
SELECT @tmpID = NO FROM CCNF
UPDATE CCNF SET NO = @maxid WHERE NO= @tmpID
---------------------------------------------------------------
你可以做个存储过程,然后调用,不就是一条语句了吗?
CREATE PROCEDURE procname
@no int
@n int
AS
declare @i int
while (@i<=@n)
begin
update ccnf set no=@no,@no=@no+1
set @i=@i+1
end
ADO.Execute procname,no(开始的号),n(需要递增的数目)
---------------------------------------------------------------
1.在设计数据库使用
create table CCNF(
NO integer not null identity(50,1),
Barcode Varchar(30) Null,
Name varchar(30) Null
)
2.若是NO允许NULL,那么在表上可建一个触发器,对NO的Insert,Update进行自动的维护(需要游标,select * from inserted,效率较低)。
3.在应用程序后台就已经填好NO的值,如以上各位所示。然后插入。(为了避免并发操作带来的危险,应用程序后台需要使用事务)
---------------------------------------------------------------
dim sql as string
SQL="declare @no int" & vbcr & _
set @no=49
update CCNF set no=@no,@no=@no+1
"
ADO.Execute SQL