了解每个变量SQL存储过程的值或结果

时间:2014-07-17 02:53:36

标签: sql sql-server sql-server-2008 math

这是我的存储过程:

CREATE PROCEDURE _spCalc
   (@Num01 decimal(18,0), @Num02 decimal(18,0), @Num03 decimal(18,0))
AS
BEGIN
   DECLARE @Var01 float, DECLARE @Var02 float, DECLARE @Var03 float

   SET @Var01 = @Num01 * 1000
   SET @Var02 = @Num02 - ((POWER(6.53 * @Var01, 0.5)) / (POWER(@Num03, 0.5)))
   SET @Var03 = (1 - 3.4680733 * LOG(@Var02) + 1.8779192 * POWER(LOG(@Var02), 2))

   INSERT INTO _myTable(Num01, Num02, Num03, Num04) 
   VALUES (@Num01, @Num02, @Num03, ((@Var02 + @Var03 + @Num01) * 1000))
END

我的问题是,我如何测试并知道我声明的每个变量的结果?我想将结果与excel格式的计算进行比较。只是想确定,结果是一样的。

干杯,

2 个答案:

答案 0 :(得分:1)

我们可以使用" print @ var01"。在计算之前或之后重复使用不同的变量名称。这显示在结果的消息部分中。 要么 我们可以使用"选择@ var01为var01,@ var02为var02,@ var03为var03"在插入语句之前。这会在执行期间为您提供类似输出的表

您可以扩展打印或根据需要选择其他变量。

答案 1 :(得分:1)

由于某些原因,我无法添加更多评论。 “在分配给变量”

之前,尝试将计算作为单独的“选择”
select @Num01 * 1000 as @Var01
select @Num02 - ((POWER(6.53 * @Var01, 0.5)) / (POWER(@Num03, 0.5))) as @Var02
select (1 - 3.4680733 * LOG(@Var02) + 1.8779192 * POWER(LOG(@Var02), 2)) 

替换你传递给程序的值