2010-01-07 5 views

Répondre

0

Que diriez-vous:

IF EXISTS 
(
SELECT 1 FROM Master1 WHERE (...) 
UNION ALL 
SELECT 1 FROM Master2 WHERE (...) 
UNION ALL 
SELECT 1 FROM Master3 WHERE (...) 
)  
BEGIN 
... 
END 

Il devrait faire l'affaire, et tirer assez vite ...

0

Non, ce que vous avez là va remplacer la valeur. Vous pouvez les ajouter en tant que chaînes ou ajouter les numéros. Mais c'est une mauvaise pratique. mieux de retourner un ResultSet, à savoir:

SELECT 
    (select count(*) FROM Master1 WHERE (...)) as 'Foo1', 
    (SELECT count(*) FROM Master2 WHERE (...)) as 'Foo2', 
    (select count(*) FROM Master3 WHERE (...)) as 'Foo3' 
+0

Si l'une de ces instruction renvoie 1 je dois arrêter le processus Pls. Je veux connaître le meilleur moyen – Geeth

+0

Ensuite, déclarez les variables individuelles et vérifiez le résultat après chaque affectation, * puis * renvoyez le paquet comme un ensemble de résultats, comme ci-dessus. Est-ce clair? –

+0

ok Merci. Aucune autre meilleure option? – Geeth

0

Vous voulez exécuter uniquement si aucun de ceux-ci existent.

Vous pouvez utiliser le mot clé EXISTS.

Quelque chose comme ça.

IF NOT EXISTS SELECT ID FROM Master1 WHERE (...) 
    IF NOT EXISTS SELECT ID FROM Master2 WHERE (...) 
    IF NOT EXISTS SELECT ID FROM Master3 WHERE (...) 
    BEGIN 
     ..do stuff... 
    END 

Notez que je n'utilise pas count, si count est nul NOT EXISTS est vrai. Sélectionnez une colonne pour exécuter la requête.

ne peut pas tester en ce moment, la syntaxe pourrait ressembler à ceci:

IF NOT EXISTS (SELECT ID FROM Master1 WHERE (...)) 
    IF NOT EXISTS (SELECT ID FROM Master2 WHERE (...)) 
    IF NOT EXISTS (SELECT ID FROM Master3 WHERE (...)) 
    BEGIN 
     ..do stuff... 
    END 
Questions connexes