查到可以用以下语句将变量声明一个表类型
DECLARE @TableVar TABLE (Cola int PRIMARY KEY, Colb char(3))但是,如何将一个变量声明为一个已知的表呢?
即如果我有表A
create table A (Cola int PRIMARY KEY, Colb char(3))
我如何根据表A来定义变量@TableVar 呢?

解决方案 »

  1.   

    select * into @TableVar from A where 1<>1
      

  2.   

    不用申明,直接用@TableVar表就可以。
      

  3.   

    如果你使用的是MSSQL2008的话,你可以定义一个表类型,具体如下:create type dbo.A as table
    (
        cola int primary key,
        colb char(3)
    )然后你在存储过程里可以通过:
    declare @tablevar as dbo.A的语句将表变量@tablevar的类型指定为刚才定义好的dbo.A就行了,将来只要直接修改表类型dbo.A即可,不用再修改存储过程了。
    PS:表类型也可以作为存储过程和函数的输入参数的类型来使用。