存储过程参数命名两列并返回值

时间:2019-07-18 21:45:57

标签: sql

我正在尝试创建一个存储过程,该存储过程将像这样传递一个参数并返回一个int

@Parameter = Column1-Column2
select @Parameter

将会

select Column1-Column2

我收到此错误:

  

将varchar值“ Column1-Column2”转换为数据类型int时转换失败。

2 个答案:

答案 0 :(得分:0)

我认为您正在尝试在此处创建用户定义的表值函数:

IF EXISTS (SELECT 1 FROM sys.objects WHERE name = N'ufn_GetDiff', type = N'FN')
DROP FUNCTION usp_GetDiff;
GO

CREATE FUNCTION ufn_GetDiff()
RETURNS table
AS
BEGIN
    SELECT [column1] - [column2] AS diff FROM [Table]  
END

答案 1 :(得分:0)

这可能有帮助。

--Create Procedure
CREATE PROCEDURE TestProcedure (@Param1 INT, @Param2 INT)
AS
BEGIN
    RETURN (@Param1 - @Param2)
    /* OR */
    --DECLARE @Result INT = 0
    --SELECT @Result = (@Param1 - @Param2)
    --RETURN @Result    
END

-- Execute Procedure
DECLARE @ReturnValue INT
EXEC @ReturnValue  = TestProcedure 10,5
SELECT @ReturnValue