sql server 2008中使用存储过程生成运行序列号的解决方案
如何通过使用sql server中的函数生成从0001到9999的运行序列号,如果在sql server中调用该函数,则应提供运行序列号,如果再次达到9999,则应重置0001sql server 2008中使用存储过程生成运行序列号的解决方案,sql,sql-server-2008,Sql,Sql Server 2008,如何通过使用sql server中的函数生成从0001到9999的运行序列号,如果在sql server中调用该函数,则应提供运行序列号,如果再次达到9999,则应重置0001 如果要执行上述任务,请在此方面提供帮助。关于这方面有很多好文章。试试谷歌 例如,请参见和,您可以使用以下步骤简单地获取序列号: CREATE PROCEDURE proc_GetSeqNumber AS BEGIN DECLARE @idt INT SET @idt = 0 WHILE (@idt < 9999)
如果要执行上述任务,请在此方面提供帮助。关于这方面有很多好文章。试试谷歌
例如,请参见和,您可以使用以下步骤简单地获取序列号:
CREATE PROCEDURE proc_GetSeqNumber
AS
BEGIN
DECLARE @idt INT
SET @idt = 0
WHILE (@idt < 9999)
BEGIN
SELECT @idt = @idt + 1
PRINT @idt
END
END
CREATE PROCEDURE proc\u GetSeqNumber
作为
开始
声明@idt INT
设置@idt=0
而(@idt<9999)
开始
选择@idt=@idt+1
打印@idt
结束
结束
函数无法更新、插入或删除,因此您无法存储变量并在下次调用该函数时检查其值。因此,使用函数是无法做到这一点的。数据库能够记住值的唯一方法是将其存储在表中(在Oracle中,您可以使用序列,但SQL Server不使用序列)。因此,我将使用单个值创建一个表,函数将读取值,增加值,如果需要重置它。你做了一个循环,显示了2到9999之间的数字,现在它如何回答这个问题?你没有抓住要点,这并没有回答allit创建的序列yy-mm-dd000001的问题
if @ItemsCount=0
begin
set @generatedSeNumber=1
end
else
begin
SET @sql= 'insert into Senumber values(('+@SeNumber+'))'
Exec (@sql)