T-SQL跳过损坏的CSV加载语句?

T-SQL跳过损坏的CSV加载语句?,sql,tsql,corrupt,openrowset,Sql,Tsql,Corrupt,Openrowset,我目前有一个脚本,它使用OPENROWSET将多个文件中的数据加载到临时表中。有时我会遇到一个损坏的文件,如果发现它,我希望脚本继续运行,而不是失败。 例如: 如果第一个文件由于损坏而无法打开,我希望脚本继续 谢谢你的建议 尝试使用Try/cath块 begin try SELECT CAST(F1 as datetime) as imported_at , CAST(F2 as nvarchar(255)) as updated , CAST(F

我目前有一个脚本,它使用OPENROWSET将多个文件中的数据加载到临时表中。有时我会遇到一个损坏的文件,如果发现它,我希望脚本继续运行,而不是失败。 例如:

如果第一个文件由于损坏而无法打开,我希望脚本继续


谢谢你的建议

尝试使用Try/cath块

begin try
 SELECT
 CAST(F1 as datetime)               as imported_at
, CAST(F2 as nvarchar(255))         as updated
, CAST(F3 as datetime)              as updated_at
, CAST(F4 as nvarchar(255))         as update_file
  INTO Temp
  FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel8.0;HDR=NO;Database=C:\Users\Administrator.WIN-T1K614N8PK3.001\Desktop\TV\file.xlsx','select * from [Tabelle1$]')
end try
begin catch
end catch

begin try
  SELECT
  CAST(F1 as datetime)              as imported_at
, CAST(F2 as nvarchar(255))         as updated
, CAST(F3 as datetime)              as updated_at
, CAST(F4 as nvarchar(255))         as update_file
  INTO Temp1
  FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel8.0;HDR=NO;Database=C:\Users\Administrator.WIN-T1K614N8PK3.001\Desktop\TV\file1.xlsx','select * from [Tabelle1$]')
end try
begin catch
end catch

必须使用try-catch块
begin try
 SELECT
 CAST(F1 as datetime)               as imported_at
, CAST(F2 as nvarchar(255))         as updated
, CAST(F3 as datetime)              as updated_at
, CAST(F4 as nvarchar(255))         as update_file
  INTO Temp
  FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel8.0;HDR=NO;Database=C:\Users\Administrator.WIN-T1K614N8PK3.001\Desktop\TV\file.xlsx','select * from [Tabelle1$]')
end try
begin catch
end catch

begin try
  SELECT
  CAST(F1 as datetime)              as imported_at
, CAST(F2 as nvarchar(255))         as updated
, CAST(F3 as datetime)              as updated_at
, CAST(F4 as nvarchar(255))         as update_file
  INTO Temp1
  FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel8.0;HDR=NO;Database=C:\Users\Administrator.WIN-T1K614N8PK3.001\Desktop\TV\file1.xlsx','select * from [Tabelle1$]')
end try
begin catch
end catch