contexte Problème: J'utilise VisualStudio 2008 et des ensembles de données typés, qui offrent un « facile » accès à executescalar()
exécutons scalaire renvoie la valeur du premier champ de la première ligne de la première recorset (cette dernière partie étant souvent omis)Comment empêcher proc stocké de renvoyer des jeux d'enregistrements intermédiaires?
le problème avec ce comportement est que le plus souvent que vous voulez faire d'autres demandes avant vous calculer la valeur à retourner avec une déclaration finale select @returnValue
.
Donc, ma question est, en général, Comment empêcher un SP de retourner des jeux d'enregistrements intermédiaires? (I SET essayé FMTONLY ON/OFF, mais est a un comportement latéral indésirable)
Une autre question connexe est: comment empêchez-vous une instruction UPDATE T-SQL de retourner les lignes mises à jour? Parfois, vous utilisez UPDATE pour simplement mettre à jour ...
merci!
échantillon:
BEGIN
SET NOCOUNT ON;
declare @c int
select @c=(select count(*) from work where ...)
select @c -- so ExecuteScalar() works
update sousblocs set myfield = @c
where ...
select @c --after the update, won't be seen by ExecuteScalar()
return @c --useless for ExecuteScalar
FIN
ce fut mon problème, et il peut être résolu avec le premier "select @c"; mais je me demande néanmoins si vous pouvez désactiver la sortie de recorset ....
"vous voulez faire d'autres demandes" - s'il vous plaît nous montrer un exemple de code d'un de vos sprocs pour illustrer ce que vous voulez dire ici – AakashM
Par exemple, vous calculez une valeur à stocker avec une mise à jour, et vous vouloir retourner cette valeur. Dans ce cas, la mise à jour sera le premier jeu d'enregistrements à retourner – oldbrazil