Sql server 如何声明具有相同结构的两个表变量?

Sql server 如何声明具有相同结构的两个表变量?,sql-server,table-variable,Sql Server,Table Variable,我有下表变量声明: DECLARE @MyTable TABLE ( --ten columns declared here ) 我想声明另一个具有相同结构的表变量,这样我就可以在第一个变量中插入from select,然后将结果复制到第二个变量中,然后逐个删除第一个变量中的条目,并返回第二个变量作为结果 我试过这个: DECLARE @MyTable, @MyTableCopy TABLE ( --ten columns declared here ) 但SQLServerEx

我有下表变量声明:

DECLARE @MyTable TABLE
(
   --ten columns declared here
)
我想声明另一个具有相同结构的表变量,这样我就可以在第一个变量中插入from select,然后将结果复制到第二个变量中,然后逐个删除第一个变量中的条目,并返回第二个变量作为结果

我试过这个:

DECLARE @MyTable, @MyTableCopy TABLE
(
   --ten columns declared here
)
但SQLServerExpress并不高兴,并表示

Msg 102,15级,状态1,第1行“,”附近的语法不正确


如何声明两个结构相同的表变量?

您不能这样做,但可以使用临时表来声明。新创建的临时表或参数表将具有相同的表结构

Declare @t table(startdate date,enddate date,duration int)
select * into #t1 from @t 

select * from @t1
drop table #t1

如果使用UDT,则只能在不重复定义的情况下执行此操作,但这是对数据库的永久更改。对于临时表,必须重复定义。