我以前做过这个但是找不到的地方:/
我想在存储过程中创建一个变量并返回其值,该值将根据其他选择是否返回结果进行设置。
基本上是这样的:
@myVar int = 0
BEGIN
IF
SELECT SomeThing FROM SomeTable
@myVar = 1
ELSE IF
SELECT SomeOther From SomeOtherTAble
@myVar = 2
ELSE
@myVar = 0
SELECT @myVar
END
尝试过,没有骰子......我不能为我的生活记住我过去做过的事。
答案 0 :(得分:3)
看看这是否适合你
Declare @myVar int
set @myVar = 0
SELECT * FROM dbo.Table1
if @@RowCount <> 0 SET @myVar = 1
If @myVar = 0
begin
SELECT * FROM dbo.Table2
if @@RowCount <> 0 SET @myVar = 2
end
If @myVar = 0
begin
SELECT * FROM dbo.Table3
if @@RowCount <> 0 SET @myVar = 3
end
答案 1 :(得分:0)
你在找这个吗?
@myVar int = 0
Declare @var int;
set @var = 1
BEGIN
IF
BEGIN
SELECT SomeThing FROM SomeTable
@myVar = 1
ELSE IF
SELECT SomeOther From SomeOtherTAble
@myVar = 2
ELSE
@myVar = 0
SELECT @myVar
END
Return @var
END
答案 2 :(得分:0)
听起来像输出参数......?
CREATE PROCEDURE dbo.MyProc
@MyVar int output
AS
BEGIN
/*
Your code goes here. Do whatever you like, and set @MyVar as desired.
*/
RETURN
这样称呼:
DECLARE @MyVar int
EXECUTE dbo.MyProc @MyVar output
你可以在传入之前设置@MyVar,就像任何其他变量一样(它被初始化为null)。如果在调用和参数语句中都没有“output”子句,则不会传回该值。在线图书将有更多细节和细节。
(您也可以使用RETURN值,但通常应保留此值以进行错误处理。)