我正在开发一个项目,在我的项目中我陷入了一个场景,我需要维护错误日志。我创建了一个错误日志
表,其中有列名称错误消息
。我想在该列中插入错误消息。例如,我正在使用标识列,现在如果有人在不使用“设置标识”的情况下为该标识列插入值,则会显示一条错误消息,例如“无法插入显式值”当 IDENTITY_INSERT 设置为 OFF 时,表“example”中的标识列。”我希望该错误消息记录在我的表中。
表结构
create table example
(
id int identity(1,1),
code int not null,
startdate date not null,
enddate date null,
CONSTRAINT [PK_example] PRIMARY KEY CLUSTERED
(
[id] ASC
),
constraint uc_combination UNIQUE(code,startdate,enddate)
)on [primary]
错误日志表
Create table errorlog
(
errorid int identity (1,1),
Errordate datetime,
ErrorMessage Nvarchar(255)
) on [primary]
在错误日志表中的错误消息列中,我想显示在示例表中插入记录时发生的错误消息。
我应该如何实现这一目标。
您的帮助将非常重要。
谢谢
最佳答案
可能的解决方案是使用 TRY...CATCH block :
DECLARE @DUPDATE AS DATETIME
SELECT @DUPDATE = GETDATE()
BEGIN TRY
INSERT INTO Example(code, startdate, enddate)
VALUES (1, @DUPDATE, @DUPDATE)
-- Second insert should violate the constraint...
INSERT INTO Example(code, startdate, enddate)
VALUES (1, @DUPDATE, @DUPDATE)
END TRY
BEGIN CATCH
-- Execute the error retrieval routine.
INSERT INTO ERRORLOG(ErrorDate, ErrorMessage)
VALUES (GETDATE(), ERROR_MESSAGE())
END CATCH;
关于sql-server - 如何在表中插入错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24158816/