【发布时间】:2010-10-24 21:35:24
【问题描述】:
免责声明:这是根据常见问题解答声明发布的“问答式问题”,即“完全可以提出和回答您自己的编程问题”。其目的是鼓励 SQL Anywhere 编程社区的成员通过在“sqlanywhere”标签中植入一些真实内容来使用 StackOverflow。欢迎编辑和其他答案,并且它已被标记为“社区 wiki”以促进这一点,并避免声称与声誉系统博弈。
我正在为 SQL Anywhere 9.0.2 编写一个存储过程,下面是一些代码:
...
declare
@v_d datetime, @v_d1 datetime, @v_d2 datetime
....
select @v_d1 = @v_d, @v_d2 = dateadd(dd, 1, @v_d1)
...
事实证明@v_d2 不会按预期设置。 如果我将其修改为:
...
declare
@v_d datetime, @v_d1 datetime, @v_d2 datetime
....
select @v_d1 = @v_d
select @v_d2 = dateadd(dd, 1, @v_d1)
...
什么都没有发生,都一样。 最后,我把它改成了:
...
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
...
现在它工作正常,但看起来有点愚蠢。 我的问题是:这是一个已知问题吗?或者也许我可以做得更整洁?任何 cmets 将不胜感激。 谢谢!
【问题讨论】:
-
+1 以激怒那些不阅读常见问题解答并否决这些问题的人。
标签: sql stored-procedures variables variable-assignment sqlanywhere