2010-10-01 2 views

Répondre

2

Pour affecter une valeur, vous devez utiliser la fonction sql. il est impossible d'attribuer une valeur à partir de la procédure stockée.
Voici link comment le créer.

+0

Merci, j'ai converti en une fonction scalaire. Vous avez la marque d'acceptation parce que vous avez donné un lien vers la syntaxe. – jeffcook2150

1

Vous devez écrire une fonction scalaire qui prend quelques paramètres (ou même zéro) et renvoie ce dont vous avez besoin.

1

Vous pouvez stocker la sortie de la procédure stockée dans une table temporaire, puis utiliser cette table temporaire comme base pour votre mise à jour. Par exemple, le code ci-dessous suppose que votre proc renvoie un jeu d'enregistrements avec deux entiers.

create table #t (
    ColumnA int, 
    ColumnB int 
) 

insert into #t 
    (ColumnA, ColumnB) 
    exec my_sp 

update u 
    set field = t.ColumnB 
    from users u 
     inner join #t t 
      on u.UserID = t.ColumnA 

drop table #t 
+0

Solution intelligente, merci, mais j'ai déjà converti en une fonction. – jeffcook2150

+0

@cookiecaper: C'est la meilleure façon de faire. Je voulais juste donner une autre alternative au cas où ce n'était pas une option pour vous. –

Questions connexes