【发布时间】:2015-10-21 05:19:34
【问题描述】:
我正在尝试这样的事情
DECLARE @CreateDate DATETIME, @iCount BIGINT
SET @iCount=0
SET @CreateDate=DATEADD(s,.5,GETDATE())
DECLARE iCreateDate CURSOR FOR
SELECT ID
FROM Table AS
WHERE CreateDate IS null ;
OPEN iCreateDate ;
FETCH FROM iCreateDate ;
UPDATE Table
SET CreateDate = @CreateDate
WHERE CURRENT OF iCreateDate ;
SET @iCount=@iCount+1
WAITFOR DELAY '00:00:00.5';
WHILE (SELECT COUNT(ID)
FROM Table AS
WHERE CreateDate IS NULL) > 0
FETCH NEXT FROM iCreateDate INTO @CreateDate
CLOSE iCreateDate ;
DEALLOCATE iCreateDate ;
GO
【问题讨论】:
-
你应该解释你想要做什么,而不是仅仅发布一些代码。还有,有什么问题?
-
对不起。我正在尝试使用 getdate() 填充 createdate,但每条记录大约相差 0.5 秒。基本上每条记录在半秒后都有一个不同的日期。顺便说一句,如果有人能想到更简单的方法,我不必做光标
-
您是否使用日期作为表格的主键?如果是这样,为什么不将其设置为主键或至少是唯一索引以防止出现此问题?
标签: sql-server tsql cursor