从存储过程中的tmp表中选择

时间:2016-09-08 12:54:51

标签: c++ sybase procedure

我试图执行以下操作:

  1. 通过C ++代码创建一个带有键/值列和值的tmp表(sybase db)

  2. 创建一个sp,我将从#tmpTable'

  3. 中选择*
  4. 从C ++代码中调用此sp。

  5. 但是我遇到了一个问题:我无法创建这样的存储过程。 有一个错误,该表不存在(并且它是如此)。

    那么,我可以用其他方式做到这一点,还是有任何技巧?

    我的例子:

    create procedure my_sp
    as    
        begin
           if OBJECT_ID('#tmpTable') is not null   
               select key, value from '#tmpTable'
        end
    

1 个答案:

答案 0 :(得分:1)

编译sp时,可以将temp创建为同一会话的一部分。这将允许sybase编译你的sp。您将需要tmp表定义。请尝试以下 -

use databasename
go

create table #tmpTable (key [keydatatype], value [valuedatatype], .....) 

create procedure my_sp
as    
    begin
       if OBJECT_ID('#tmpTable') is not null   
           select key, value from '#tmpTable'
    end