如何在表中插入错误消息



我正在做一个项目,在我的项目中,我被困在一个场景中,我需要维护一个错误日志。我创建了一个error log表,其中我有列名称Error Message。我想在那一列中插入错误消息。例如,我使用的是一个身份列,现在,如果有人插入一个值的身份列,而不使用"设置身份",然后一个错误消息显示为"不能插入显式值的身份列在表'示例'当IDENTITY_INSERT被设置为OFF。"我希望该错误消息是作为记录在我的表。

表结构
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]

在Errorlog表中的列错误消息中,我想显示在插入示例表中的记录时发生的错误消息。

我该怎么做呢?

我很感激你的帮助。

谢谢

可能的解决方案是使用TRY…CATCH块:

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;

相关内容

  • 没有找到相关文章

最新更新