SQL Try / Catch внутри цикла пока существует - PullRequest
0 голосов
/ 29 октября 2019

Я хочу добавить TRY / CATCH в мой код, чтобы игнорировать ошибки, когда таблица и / или база данных не существуют. Как мне сделать так, чтобы он игнорировал ошибку? Я хочу запустить весь код в Power BI и загрузить таблицу (# temp1). В настоящее время он выдает мне сообщение об ошибке, когда отсутствует таблица, и выдает ошибку и останавливается, когда отсутствует база данных.

Я хочу выполнить запрос для каждой базы данных на сервере и вставить результат водна таблица (# temp1). Я положил имя базы данных в таблицу (ClientList). Я создал таблицу (#DBList), чтобы показать, для какой базы данных выполнялся оператор (@SQL) (IsProcessed).

DROP TABLE IF EXISTS #temp1
CREATE TABLE #temp1 (dbname varchar(50), membership Int)

declare @dbName      as nvarchar(255)     = ''
DECLARE @sql         AS NVARCHAR(MAX)


       if object_id('tempdb.dbo.#DBList') is not null drop table #DBList
       create table #DBList(
                                  dbName                 varchar(255)
                                  ,isProcessed  bit default(0)
                                  )

       insert #dbList(dbName)

       SELECT DBName FROM ClientList WHERE LOB = 'MA'


while Exists (select 0 from #dbList where isProcessed = 0)
BEGIN  
              SET           @dbName         = (select min(dbName) from #dbList where isPRocessed = 0)
              SET           @sql            = N'Use '+@dbName+ ' INSERT INTO #temp1 
SELECT db_name(), member_count From membership
'
              Execute sys.sp_executesql @sql;


              update a
              set isProcessed = 1
              from #DbList a
              where dbName = @dbName
    PRINT @dbname+ ' is run'
END  


SELECT * FROM #temp1

имя_базы () |MEMBER_COUNT

...