我的程序有问题,该程序会为我的程序生成一个唯一的编号。我使用此程序直到9年,并且一直有效。这是代码
DECLARE @PROG AS DECIMAL(20,0)
DECLARE MYCURSOR CURSOR SCROLL_LOCKS FOR
SELECT PROG FROM PROGRESSIVI where sezione='DUCATO' AND ISTPR=5034
FOR UPDATE OF PROG
OPEN MYCURSOR
FETCH NEXT FROM MYCURSOR INTO @PROG
if @@FETCH_STATUS = 0 BEGIN
UPDATE PROGRESSIVI SET PROG = @PROG + 1
WHERE CURRENT OF MYCURSOR
SELECT @PROG + 1
END
CLOSE MYCURSOR
DEALLOCATE MYCURSOR
两天之内,用户在同一秒使用该过程创建了SAME渐进式程序,这涉及很多问题。可能是某种SQL Server更新导致了此问题?是SQL Server 2008。
答案 0 :(得分:0)
您可以在sql中使用NEWSEQUENTIALID()关键字。此关键字会为您键入的uniqueidentifier类型生成顺序ID。
请检查以下链接: Link
答案 1 :(得分:0)
非常感谢您的回答,但是问题是,现在我无法用“序列”代替生成标识符的方式。我只想了解为什么我的程序始终可以正常工作,但现在不再有效:( 有没有办法修复我之前编写的代码?有什么建议吗?