2017-07-01 4 views
2

J'ai un package très simple de SQL Data Flow Task qui exécute une requête et supprime le résultat.Comment faire échouer package SSIS lorsqu'il n'y a pas de ligne

Existe-t-il un moyen de faire échouer mon package lorsqu'il n'y a aucun résultat dans la requête? J'essaie d'ajouter Execute SQL Task pour obtenir le résultat comte, mais je ne suis pas sûr de savoir comment le faire échouer quand le résultat Count = 0.

Répondre

0

Certains SQL comme cela devrait le faire:

DECLARE @CNT INT; 
SELECT @CNT = COUNT(*) FROM Table; 
IF @CNT = 0 RAISERROR('Error',17,1); 
0

Vous pouvez utiliser un Tâche de script pour y parvenir:

  1. Utilisez le Execute SQL Task pour stocker le résultat dans un package Count variables
  2. Ajouter une tâche de script pour vérifier la valeur de la variable et échoue si une valeur égale à zéro

Vous devez d'abord ajouter la variable au script ReadOnly Variables

Si l'on suppose que le nom de la variable est @[User::Variable]

Public Sub Main() 

     If Dts.Variables.Item("User::Variable").Value = 0 Then 

      Dts.TaskResult = ScriptResults.Failure 
     Else 
      Dts.TaskResult = ScriptResults.Success 

     End If 


    End Sub