Je ne sais pas si j'ai bien compris votre question, mais je vais essayer de poster la réponse.
Le premier exemple ici utilise la procédure stockée avec le paramètre de sortie retournera le résultat dans la variable booléenne @AccountExists
ce qui est comme vous pouvez le voir assez exagéré. Le deuxième exemple utilise la fonction définie par l'utilisateur qu'est-ce que IMHO ce que vous avez essayé d'iplie dans votre question.
CREATE FUNCTION AccountExists
(@AccountID INT)
RETURNS BIT
AS
BEGIN
IF NOT EXISTS (SELECT * FROM dbo.Accounts WHERE AccountID = @AccountID)
RETURN 0
ELSE
RETURN 1
END
CREATE PROCEDURE CreateAccount
@AccountID INT
AS
BEGIN
IF SELECT AccountExists(@AccountID) = 0
INSERT INTO dbo.Accounts (AccountID, AccountName) VALUES ...
END
Enfin, le troisième exemple utilise un test en ligne simple pour l'existence de la valeur. Je ne sais pas à quel point votre vérification d'existence de compte sera compliquée (et fréquente dans votre code), alors cette façon de procéder pourrait vous mettre un peu mal à l'aise.
CREATE PROCEDURE CreateAccount
@AccountID INT
AS
BEGIN
IF NOT EXISTS (SELECT * FROM dbo.Accounts WHERE AccountID = @AccountID)
INSERT INTO dbo.Accounts (AccountID, AccountName) VALUES ...
END
Je ne sais pas si c'est ce que vous cherchiez. Notez également que je travaille depuis longtemps avec TSQL, donc si c'est faux, alors battez-moi :)
Le deuxième exemple est exactement ce dont j'avais besoin. De cette façon, je peux appeler un SPROC pour vérifier si un identifiant de compte existe déjà et l'appeler à partir de plusieurs autres SPROCS. Ensuite, si plus tard, je décide de changer la façon de suivre les comptes, je n'ai qu'un seul endroit à changer. – iJared