我有一张桌子,上面有3个键,AUDIT_OPRID
(varchar
),AUDIT_STAMP
(datetime
),AUDIT_ACTN
(varchar
)。
我正在使用GETDATE()
函数从select语句插入行,以获取当前日期时间。 AUDIT_OPRID
和AUDIT_ACTN
的值相同,因此我唯一可以唯一设置的键列是datetime。我希望有一种方法可以将插入的每一行的日期时间自动增加1秒,这样就不会出现重复的关键问题。
我找到了类似情况的MySQL版本的线程-SQL INSERT...SELECT with auto-increment DATETIME,但是在以下SQL中使用该线程时却出现语法错误:
DECLARE @value DATETIME
SET @value = CURRENT_TIMESTAMP
INSERT INTO PS_AUDIT_PSROLEUSR (AUDIT_OPRID, AUDIT_STAMP, AUDIT_ACTN, ROLEUSER, ROLENAME, DYNAMIC_SW)
SELECT
'TESTUSER', @value = @value + INTERVAL 1 SECOND, 'D', A.OPRID, D.ROLENAME, 'N'
FROM
PSOPRDEFN A
INNER JOIN
PS_AD_X_WALK B ON B.OPRID = A.OPRID
INNER JOIN
PS_JOB C ON C.EMPLID = B.GH_AD_EMPLID
WHERE
B.GH_AD_EMPLID <> ''
AND C.ACTION = 'TER'
AND A.ACCTLOCK = 0
理想的结果如下:
AUDIT_OPRID AUDIT_STAMP AUDIT_ACTN ROLEUSER ROLENAME DYNAMIC_SW
TESTUSER 2018-11-21 07:02:08.563 D USER123452 GHS_PO_RECEIVER N
TESTUSER 2018-11-21 07:02:09.563 D USER123452 GHS_STOREROOM N
TESTUSER 2018-11-21 07:02:10.563 D USER123452 GH_EPRO N
答案 0 :(得分:1)
您可以使用row_number并将该值作为秒添加到您的时间戳记值中,像这样
.element-1