Comment puis-je obtenir SQL SELECT @variable = expression des affectations de travail comme une feuille de calcul?

Avertissement: Ceci est une "demandé-et-répond à la question" affiché conformément à la FAQ de la déclaration qu'il est "parfaitement bien de poser et de répondre à votre propre question de programmation". Son but est d'encourager les membres de la SQL Anywhere communauté de la programmation à utiliser StackOverflow par ensemencement de la "sqlanywhere" de la balise avec le réel contenu. Les modifications sont les bienvenus, comme d'autres réponses, et il a été marqué "wiki de la communauté" pour faciliter cette action, ainsi que pour éviter les plaintes de jeu le système de réputation.

Je suis en train d'écrire une procédure stockée dans SQL Anywhere 9.0.2, voici un code:

...
declare
@v_d datetime, @v_d1 datetime, @v_d2 datetime
....
select @v_d1 = @v_d, @v_d2 = dateadd(dd, 1, @v_d1)
...

il s'avère que @v_d2 ne sera pas comme prévu.
si je le modifier pour:

...
declare
@v_d datetime, @v_d1 datetime, @v_d2 datetime
....
select @v_d1 = @v_d
select @v_d2 = dateadd(dd, 1, @v_d1)
...

rien ne se passe, tout de même.
enfin, je l'ai changé pour :

...
declare
@v_d datetime, @v_d1 datetime, @v_d2 datetime
....
begin
   select @v_d1 = @v_d
end
begin
   select @v_d2 = dateadd(dd, 1, @v_d1)
end
...

maintenant il fonctionne très bien, a l'air assez stupide si.
ma question est: est-ce un problème connu? ou peut-être que je pourrais le faire plus proprement? tout
les commentaires seront appréciés.
merci!

  • +1 malgré les gens qui n'ont pas de lire la Faq et downvote ces questions.