我试图阅读Sybase,但我收到的信息对我来说太不清楚了。我遇到的问题是我必须在Sybase中编辑这个6000行存储过程。毋庸置疑,这是一场彻头彻尾的噩梦,特别是对于那些最重要的人并不完全是SQL的人。
在程序的顶部有一个声明的变量(为了这个问题,只使用较短的变量名):
DECLARE @MY_VARIABLE INT
我熟悉的小SQL是SQL Server,Sybase感觉有点不同。你究竟如何为该变量设置一个值?在SQL Server I&#d; image中,它将是这样的:
SET @MY_VARIABLE = 1
但是我无法在程序中找到任何类似的地方。我确实找到了这个:
SELECT @MY_VARIABLE = convert(integer, Member_Number)
FROM ELECTRONIC_FORM NOHOLDLOCK
这是您在Sybase中设置变量的方法吗?与
SELECT @MY_VARIABLE = 2
例如?
除此之外,如何在程序结束时返回变量的值?我会想象它是这样的:
SELECT @MY_VARIABLE
并确保它是程序中的最后一件事,但这似乎不起作用。它看起来非常类似于我感觉变量实际上得到设置而不是选择的方式。我真的很困惑,迷失在这里,感谢您提前获得任何帮助!
答案 0 :(得分:2)
CREATE PROCEDURE RETURN_SELECT
AS BEGIN
DECLARE @MY_VARIABLE int
SELECT @MY_VARIABLE = 2
SELECT @MY_VARIABLE
END
EXEC RETURN_SELECT
输出如下:
@MY_VARIABLE
2
尽可能简单,不知道它是否有用,或者你想要更多东西?
答案 1 :(得分:1)
确保您清楚是否要将变量选择为返回给客户端的结果集,或者是否使用OUTPUT参数变量做得更好,这在每周的答案中都是如此将是:
CREATE PROCEDURE RETURN_SELECT
@MY_VARIABLE int OUTPUT
AS BEGIN
SELECT @MY_VARIABLE = 2
END
这可能会增加混乱,我希望不会。我不知道你是如何获得结果的,但这可能很重要 - 一种方法可能比另一方更容易和更好。
这与上面的SET / SELECT讨论不同。此外,当您将结果集选择回客户端时,您可以在SP中的任何位置执行此操作,甚至可以选择多个结果集!