dol*_*_do 0 sql stored-procedures syntax-error sql-server-2012
我建议使用以下存储过程来审核登录表.
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
Run Code Online (Sandbox Code Playgroud)
但是我无法让它解决一些我无法弄清楚的语法错误.
该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)
)
Run Code Online (Sandbox Code Playgroud)
该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]
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
无法更新时间戳列
我不明白为什么.
任何的想法?