2009-09-28 22 views
1

如何在不写入两次的情况下创建两个具有相同结构的临时表?如何在不写入两次的情况下创建两个具有相同结构的临时表?

类似的东西:

DECLARE @TEST_TABLE1, @TEST_TABLE2 TABLE 
(
    FIELD1 INT, 
    FIELD2 INT 
) 

和NO:

DECLARE @TEST_TABLE1 TABLE 
(
    FIELD1 INT, 
    FIELD2 INT 
) 

DECLARE @TEST_TABLE2 TABLE 
(
    FIELD1 INT, 
    FIELD2 INT 
) 
+3

我试图找出你为什么会想这样做,首先。 – 2009-09-28 20:34:47

+4

我第二个问题。你是想减少打字,还是什么?显然没有直接的方法来做到这一点,但为了提出建议,我必须了解你的目标。 – cdonner 2009-09-28 20:43:35

回答

6

这些都不是“临时表”,临时表是CREATE TABLE #TempTable(x int)

,使这项工作真正的表的表,请尝试:

CREATE TABLE #TempTable(x int) 
insert into #TempTable values(5) --test data to show no data copied to new table 
select * into #tempTable2 from #TempTable where 1=2 
select * from #TempTable 
select * from #TempTable2 

这些表vaiables(@tableVariable),你有要声明每个变量,没有办法绕过它。

+0

好吧,你是对的(关于临时表的定义),如果没有办法,没问题。无论如何,我认为变量表是暂时的。韩国社交协会。 – Zanoni 2009-09-29 12:36:10

0

只有极不标准的方式我能想到这可能是工作只是写SYS.TABLES直接,但你仍然需要做两次插入,但是你同时在做表格。

这可能不是你想要的,但使用存储过程的时间很短,并且从你的应用程序和两个数据库中进行一次调用,我想不出任何其他解决方案。

0

创建第一临时表,然后选择到第二临时表:

- 创建第一临时表

CREATE TABLE#TEST_TABLE1 ( FIELD1 INT ,FIELD2 INT )

- 选择进入第二个临时表

SELECT * INTO#TEST_TABLE2 FROM#TEST_TABLE1

- 无论是临时表的兽医存在

SELECT * FROM#TEST_TABLE1

SELECT * FROM#TEST_TABLE2

+0

使用此代码,您将要将#TEST_TABLE1中的所有数据复制到#TEST_TABLE2 – 2009-09-28 20:47:18

+0

KM中,不,您不是因为您尚未将数据复制到#test_table1中。 – HLGEM 2009-09-28 21:42:38

相关问题