gpt4 book ai didi

sql - 无法更新时间戳列

转载 作者:行者123 更新时间:2023-12-03 08:14:09 25 4
gpt4 key购买 nike

建议我使用以下存储过程来审核登录表。

 CREATE PROCEDURE ApplicationLogin 
@Username NVARCHAR(255),
@IpAddress NVARCHAR(255)
AS
BEGIN
DECLARE @UserID INT;

BEGIN TRANSACTION;

SET @UserID = (SELECT UserID FROM User WHERE Username = @Username);

IF @UserID > 0
BEGIN
UPDATE User
SET LastLogin = GETDATE()
WHERE UserID = @UserID;
END

INSERT INTO UserLogger (Username, UserID, TimeStamp)
VALUES (@Username, @UserID, @Timestamp);

COMMIT TRANSACTION;

SELECT @UserID
END

但是,对于某些我无法弄清楚的语法错误,我无法使其工作。
User表如下所示:
CREATE TABLE [dbo].[User]
(
[UserID] [INT] IDENTITY(1,1) NOT NULL,
[UserName] [VARCHAR](50) NOT NULL,
[Enabled] [BIT] NOT NULL,
[LastLogin] [TIMESTAMP] NOT NULL,
PRIMARY KEY CLUSTERED ([UserID] ASC)
)
Audit表如下所示:
CREATE TABLE [dbo].[UserLogger]
(
[UserID] [INT] IDENTITY(1,1) NOT NULL,
[UserName] [VARCHAR](50) NOT NULL,
[Name] [VARCHAR](100) NULL,
[TS] [TIMESTAMP] NULL,
[IpAddress] [NCHAR](10) NULL
) ON [PRIMARY]

我得到一个错误

Cannot update a timestamp column



我不明白为什么。

任何想法?

最佳答案

timestamp不是您认为的那样。它是行地址的某种内部表示。 Here是一种解释。

使用datetimedatetime2可以解决您的问题。

这更加令人困惑,因为CURRENT_TIMESTAMP不返回时间戳。

关于sql - 无法更新时间戳列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54316252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com