2010-02-12 8 views
0

Je crée une procédure stockée. Cette procédure stockée doit insérer un enregistrement si un enregistrement avec une valeur spécifique n'existe pas. Si la valeur existe, j'ai besoin de mettre à jour l'enregistrement. Le problème que j'ai est de déterminer si un enregistrement avec la valeur donnée existe ou non. J'utilise le code suivant:SQL - Comptage des enregistrements retournés

DECLARE @record1ID as char(36) 
SET @record1ID = (SELECT TOP 1 ID FROM Person WHERE [Role]='Manager') 

DECLARE @record2ID as char(36) 
SET @record2ID = (SELECT TOP 1 d.ID FROM Department d WHERE d.[ManagerID][email protected]) 

-- If @record2ID is set update record, otherwise add record 
-- how do I setup this if/else statement? 

Merci!

Répondre

0
IF (EXISTS YOUR_SELECT) 
BEGIN ... 

ou

IF (@record2ID IS NULL) 
BEGIN ... 

ou utiliser select count(*) au lieu de sélectionner une valeur

1

Si cela était un serveur SQL comme il ressemble, vous pouvez faire un compte comme ceci:

@rec_counter comme int déclare

set @rec_counter = 0

select = @rec_counter count (*) du département d, où d. [ManagerID] = @ record1

si (@rec_counter> 0)

commencent

-- do whatever here 

fin

Questions connexes