Clause de non-responsabilité: Ceci est une "question posée et répondue" postée conformément à la déclaration de la FAQ 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 communauté de programmation SQL Anywhere à utiliser StackOverflow en ajoutant la balise "sqlanywhere" à du contenu réel. Les modifications sont les bienvenues, tout comme d'autres réponses, et il a été marqué "community wiki" pour faciliter cela, ainsi que pour éviter les revendications de jeu du système de réputation.Comment obtenir SQL SELECT @variable = les affectations d'expression fonctionnent comme une feuille de calcul?
J'écris une procédure stockée 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 se trouve que @ v_d2 ne sera pas réglé comme prévu. si je modifie à:
...
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é:
...
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, semble un peu stupide cependant. Ma question est: est-ce un problème connu? ou peut-être que je pourrais le faire plus proprement? tous les commentaires seront appréciés. merci!
+1 pour contrer les personnes qui ne lisent pas la FAQ et qui ont refusé ces questions. –