proc给出了神秘的结果

时间:2014-11-04 20:29:19

标签: sql sql-server hp-exstream

所以我有一个其他人写过的proc,其代码如下:

if 1 = 0
begin
    select 
        cast(null as int) as case_id,
        cast(null as int) as review_id, 
end
      --then a real select statement happens that matches the same pattern.

现在,HP exstream在执行存储过程时会以某种方式读取top select语句,即使它永远不会被调用。如果我在真实结果查询中添加列而不向此隐藏查询添加空列,则它将无效(在HP exstream中,在SQL服务器中,proc会按预期运行)。

任何人都知道如何运作? HP Exstream如何读取这个不执行的代码?

1 个答案:

答案 0 :(得分:0)

我不知道这是什么代码库,但我认为它是在Dialogue脚本中。由于exstream引擎基于C ++,我的第一个问题是IF语句的语法。

IF中的IF 1 = 0与IF 1 == 0不同。第一个根据将值为1的实例更改为值为零的实例成功确定语句的真实性。因此,它永远是真的。后者实际上比较了这两个值,这显然总是错误的。

在不了解情况的情况下,我会首先看一下。