2012-03-11 105 views
0

如何通过在SQL服务器使用函数生成从0001到9999的运行序列号,如果u调用SQL服务器的功能,它应该以可以提供一个运行序列号当过,如果它再次达到9999它应该重置0001溶液2008

能有这方面的帮助,请执行此任务的上述

回答

1

有很多关于好文章。试试Google。

例如见herethere

0

您可以通过以下步骤简单地获取序列号:

CREATE PROCEDURE proc_GetSeqNumber 
AS 
BEGIN 
DECLARE @idt INT 
SET @idt = 0 
WHILE (@idt < 9999) 
BEGIN 
    SELECT @idt = @idt + 1 
    PRINT @idt 
    END 
END 
+0

你做了一个循环,显示2到9999之间的数字,现在怎么回答这个问题? – 2012-03-11 07:29:30

+0

很抱歉,您可以初始化@idt 0 ..... – 2012-03-11 07:32:28

+0

你错过了点,并没有解答所有 – 2012-03-11 07:33:56

1

函数不能更新,插入或删除,所以你不能存储变量并在下次调用函数时检查它的值。因此,使用函数无法做到这一点。

0

数据库能记住的值的唯一方法是,如果它被存储在一个表(在Oracle中,你可以使用一个序列,但SQL Server不使用这些。)所以我想创建一个表与单个值,函数将读取该值,将其增加,并且如果需要将其重置。

0
if @ItemsCount=0  
begin 
       set @generatedSeNumber=1 
end 
else 
    begin 

SET @sql= 'insert into Senumber values(('[email protected]+'))' 
Exec (@sql) 
+0

它的创建序列YY-MM-dd000001问题 – kkjj 2012-03-12 10:07:41