我正在尝试创建一个存储过程,该存储过程将像这样传递一个参数并返回一个int
值
@Parameter = Column1-Column2
select @Parameter
将会
select Column1-Column2
我收到此错误:
将varchar值“ Column1-Column2”转换为数据类型int时转换失败。
答案 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