Nil*_*ils 3 sql sql-server try-catch sql-insert
我试图将从我的 select 语句中得到的所有错误插入到一个错误表中,但我没有让它起作用。
BEGIN TRY
INSERT INTO [database]..[Table]([Column1], [Column2], [Column3])
SELECT
[Column1], [Column2], [Column3]
FROM
[database]..[SourceTable]
END TRY
BEGIN CATCH
INSERT INTO [database]..[ErrorTable]([Column1], [Column2], [Column3])
-- What to do here? .... (select the same query as up?)
SELECT
[Column1], [Column2], [Column3]
FROM [database]..[SourceTable]
END CATCH
Run Code Online (Sandbox Code Playgroud)
现在我想查看我的Error表格中的所有错误以及所有在表格中正确显示的错误,但我没有让它起作用?
源系统的数据类型是nvarchar,我的列是INT因为值应该只是 INT ..所以源系统的设计很糟糕?
尝试这个
Begin Catch
INSERT INTO [database]..[ErrorTable]
(
[Column1],
[Column2],
[Column3],
[Column4],
[Column5],
[Column5]
)
SELECT
cast (ERROR_NUMBER() as <your datatype>)
,cast (ERROR_SEVERITY() as <your datatype>)
,cast (ERROR_STATE() as <your datatype>)
,cast (ERROR_PROCEDURE() as <your datatype>)
,cast (ERROR_LINE() as <your datatype>)
,cast (ERROR_MESSAGE() as <your datatype>)
End Catch
Run Code Online (Sandbox Code Playgroud)