这与这个问题有关,但略有不同,我有插入记录的 while 循环,即使某些插入失败,我也希望它继续。因此,insertrecords 过程插入记录,方法是在临时表上一次执行前 50 行的 where。
问题是如果插入记录中的任何插入失败,它将不会继续?如何修改 sql 以继续接下来的 50 行,即使当前 50 条记录失败。我想sybase中是否有类似try/catch异常处理的东西?
SELECT id INTO #temp FROM myTable
-- Loop through the rows of the temp table
WHILE EXISTS(SELECT 1 FROM #temp)
BEGIN
BEGIN TRANSACTION
exec insertrecords
IF @@error = 0
begin
print 'commited'
commit
end
else
begin
print 'rolled back'
rollback
end
DELETE TOP 50 FROM #temp order by id
END
-- Drop the temp table.
DROP TABLE #temp