SQL 服务器继续从 Select 语句插入系列,尽管有错误(?)
SQL Server continue series of inserts from Select statements despite errors(?)
我有一个很大的 SQL 语句文件,排列如下:
INSERT INTO [table here]
SELECT [columns]
FROM OPENROWSET(xlsx tab 1)
INSERT INTO [table here]
SELECT [columns]
FROM OPENROWSET(xlsx tab 2)
... etc etc...
问题是有时 XLSX 选项卡 #2(或 22)不存在,可能会导致错误,整个系列的语句都会失败。
有没有办法让每个语句都像它们自己的查询一样执行,或者忽略错误并继续?
谢谢!
认为您想要类似的东西。
begin try
INSERT INTO [table here]
SELECT [columns]
FROM OPENROWSET(xlsx tab 1)
end try
begin catch
select 'Tab1 errored'
end catch
begin try
INSERT INTO [table here]
SELECT [columns]
FROM OPENROWSET(xlsx tab 2)
end try
begin catch
select 'Tab2 errored'
end catch
SQLServer 中的错误处理是 tricky.There 一些错误会中止整个批处理,一些错误会中止整个会话,无法捕获和无法从 SSMS 本身重试的错误中止会话
在你的情况下,如果你想要一个插入,而不是被另一个影响..尝试用 BATCH SEPARATOR GO
将它们分开
INSERT INTO
SELECT
GO
INSERT
SELECT
GO
我有一个很大的 SQL 语句文件,排列如下:
INSERT INTO [table here]
SELECT [columns]
FROM OPENROWSET(xlsx tab 1)
INSERT INTO [table here]
SELECT [columns]
FROM OPENROWSET(xlsx tab 2)
... etc etc...
问题是有时 XLSX 选项卡 #2(或 22)不存在,可能会导致错误,整个系列的语句都会失败。
有没有办法让每个语句都像它们自己的查询一样执行,或者忽略错误并继续?
谢谢!
认为您想要类似的东西。
begin try
INSERT INTO [table here]
SELECT [columns]
FROM OPENROWSET(xlsx tab 1)
end try
begin catch
select 'Tab1 errored'
end catch
begin try
INSERT INTO [table here]
SELECT [columns]
FROM OPENROWSET(xlsx tab 2)
end try
begin catch
select 'Tab2 errored'
end catch
SQLServer 中的错误处理是 tricky.There 一些错误会中止整个批处理,一些错误会中止整个会话,无法捕获和无法从 SSMS 本身重试的错误中止会话
在你的情况下,如果你想要一个插入,而不是被另一个影响..尝试用 BATCH SEPARATOR GO
INSERT INTO
SELECT
GO
INSERT
SELECT
GO