如何通过在SQL服务器使用函数生成从0001到9999的运行序列号,如果u调用SQL服务器的功能,它应该以可以提供一个运行序列号当过,如果它再次达到9999它应该重置0001溶液2008
能有这方面的帮助,请执行此任务的上述
如何通过在SQL服务器使用函数生成从0001到9999的运行序列号,如果u调用SQL服务器的功能,它应该以可以提供一个运行序列号当过,如果它再次达到9999它应该重置0001溶液2008
能有这方面的帮助,请执行此任务的上述
您可以通过以下步骤简单地获取序列号:
CREATE PROCEDURE proc_GetSeqNumber
AS
BEGIN
DECLARE @idt INT
SET @idt = 0
WHILE (@idt < 9999)
BEGIN
SELECT @idt = @idt + 1
PRINT @idt
END
END
函数不能更新,插入或删除,所以你不能存储变量并在下次调用函数时检查它的值。因此,使用函数无法做到这一点。
数据库能记住的值的唯一方法是,如果它被存储在一个表(在Oracle中,你可以使用一个序列,但SQL Server不使用这些。)所以我想创建一个表与单个值,函数将读取该值,将其增加,并且如果需要将其重置。
if @ItemsCount=0
begin
set @generatedSeNumber=1
end
else
begin
SET @sql= 'insert into Senumber values(('[email protected]+'))'
Exec (@sql)
它的创建序列YY-MM-dd000001问题 – kkjj 2012-03-12 10:07:41
你做了一个循环,显示2到9999之间的数字,现在怎么回答这个问题? – 2012-03-11 07:29:30
很抱歉,您可以初始化@idt 0 ..... – 2012-03-11 07:32:28
你错过了点,并没有解答所有 – 2012-03-11 07:33:56