2014-02-14 1 views
0

Я хочу, чтобы цикл «RPT_ID = 245» от 1 до 245 и внутри try и поймать недопустимые запросы запроса, чтобы недействительные запросы были пойманы.Создайте попытку и поймайте внутри цикла

Столбец запроса представляет собой динамический оператор sql, созданный для отчетов.

alter PROCEDURE usp_ExampleProc 

AS 
     declare 
    @vsql2  as nvarchar(max) 
    ,@vquery2 as nvarchar(max) 
    ,@value  as nvarchar(max) 
    ,@value2  as nvarchar(max) 
    ,@Q1  as nvarchar(max) 
    ,@RP_NUM  as nvarchar(max) 
    ,@count  as int 

    select @count = count(*) from saved_reports 

while @count > 0 

    begin 
     select @q1 = query,@RP_NUM =RPT_ID from SAVED_REPORTS WHERE RPT_ID = @count 
     exec sys.sp_executesql @q1 



BEGIN TRY 
    EXECUTE usp_ExampleProc; 
END TRY 
BEGIN CATCH 
    SELECT 
     ERROR_NUMBER() AS ErrorNumber 
     ,ERROR_MESSAGE() AS ErrorMessage; 
END CATCH 
     set @count = @count - 1 

    end 
+2

Я не вижу петлю или вопрос. –

+0

Я вижу цикл ... 'while count> 0' ... но я не вижу вопроса :) – logixologist

ответ

Смежные вопросы