2011-07-13 5 views
0

J'ai un SPROC appelons-le: AccountExists, avec le paramètre AccountID. J'ai un autre SPROC appelons celui-ci: CreateAccount.Exécuter la procédure stockée w/Paramètre dans la procédure stockée

Je souhaite appeler le AccountExists à partir du CreateAccount et transmettre le code de compte. Un peu comme ceci:

IF NOT EXISTS (AccountExists(AccountID)) 
BEGIN 
    INSERT INTO dbo.Accounts 
     (AccountID, 
      AccountName) 
END 

Si vous êtes en mesure de suivre la logique que je veux un compte créer SPROC qui appellera la vérification pour voir si le compte existe déjà.

Répondre

2

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 :)

+0

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