2017-08-01 289 views
-2

在SQL Server 2012中,我想创建一个输入参数为 num1,num2,operation,out参数的存储过程作为结果。MS SQL Server 2012

如果你传递num1 = 1; num2 = 2;操作=添加,那么我只需要通过输出参数获得结果3。

使用过程中的函数进行计算。

CREATE PROCEDURE taskname(@num1 int, @num2 int) 
AS 
BEGIN 
    DECLARE @result VARCHAR 

    SET @result = CAST ((num1 + @num2) AS INT) 

    PRINT 'The sum of ' + CAST(@num1 AS INT) + ' and ' + CAST(@num2 AS INT) + ' is ' + CAST((@num1 + @num2) AS INT) 

    PRINT @result 
END 

我试图用这种方式。

+0

怎么做,如果'操作= subtract'? – Arulkumar

+0

你甚至没有跟着作业的第一行:'创建一个存储过程,输入参数为num1,num2,operation,out参数为结果。“ – Jamiec

+1

如果我们为你做作业,你会学到什么? –

回答

0
Create proc taskname(@num1 int, @num2 int,@operation nvarchar(max) ,@result int out) 
    as 
    begin 
    if(operation = 'ADD') 
BEGIN 
    set @result = @num1 + @num2 
    print 'the sum of '+cast(@num1 as nvarchar(max)) + ' and ' + cast(@num2 as nvarchar(max)) + ' is ' + cast(@result as nvarchar(max)) 
    print @result 
END 

if(operation = 'SUB') 
BEGIN 
    set @result = @num1 - @num2 
    print 'the subtraction of '+cast(@num1 as nvarchar(max)) + ' and ' + cast(@num2 as nvarchar(max)) + ' is ' + cast(@result as nvarchar(max)) 
    print @result 
END 

if(operation = 'MUL') 
BEGIN 
    set @result = @num1 * @num2 
    print 'the multiplication of '+cast(@num1 as nvarchar(max)) + ' and ' + cast(@num2 as nvarchar(max)) + ' is ' + cast(@result as nvarchar(max)) 
    print @result 
END 
    end 

要EXCUTE程序

DECLARE @result int 
    EXEC taskname 2 ,2,ADD,@result 

OUTPUT: -

the sum of 2 and 2 is 4 
    4 
+0

如果用于减法和乘法的操作该怎么办? – Queries

+0

我已更新我的答案,这是你在找什么 – Ashu

+0

谢谢你的回应。 – Queries