我看DECLARE的文档,说在存储过程里可以定一个 TABLE型的变量,但是怎么赋值我还不太清初,请教了,
最好是能够像ORACLE那样, declare @var  'table-name'%ROWTYPE,这样用着舒坦。

解决方案 »

  1.   

    declare @tb table(col1 类型,col2....)Insert into @tb --与表一样使用
    select '值1',.....
      

  2.   

    declare @a table(货号 int,毛需求 int,订单供给 int,仓存供给 int)
    insert @a(货号,毛需求,订单供给,仓存供给)
    values(101,500,0,0)
    insert @a(货号,毛需求,订单供给,仓存供给)
    values(101,0,100,0)
    insert @a(货号,毛需求,订单供给,仓存供给)
    values(101,0,0,400)
    insert @a(货号,毛需求,订单供给,仓存供给)
    values(101,200,0,400)
    select * from @a
      

  3.   

    表变量--定义
    declare @t table (
    id int,
    name varchar(100)
    )--插入行
    insert @t values(1,'paoluo')--插入行
    insert @t select id,name from users where id<>1--查询
    select * from @t--更新
    update @t
    set name='pao1uo' where id=1--删除
    delete @t where id=1--不用drop
      

  4.   

    高手确实多,但是我觉得这样还是不够方便, ORACLE可以直接指定变量有系统中的某个表一模一样,这样就只需要写一个表明,不用一个一个字段的去写了,这样启不是打打解约我们的时间。
    另外我这么用主要是向在 CURSOR里面用, 查询处来后,可以直接 FETCH到一个TABLE型的变量吗