将SQL Server表变量转换为实际表

时间:2012-11-28 22:07:38

标签: sql sql-server-2008 stored-procedures temp-tables

我有一个用:

创建的临时表
DECLARE @tbl_fk_errors TABLE (
    id int Primary Key IDENTITY(1,1)
    , tbl_id int
    , tbl_name nvarchar(128)
    , tbl_record_id int
    , tbl_field nvarchar(20)
    , tbl_field_value nvarchar(20)
    , jnktn_field_value nvarchar(20)
    , jnktn_field nvarchar(20)
    , jnktn_tblname nvarchar(128)

该表格将填入我的脚本中。现在我想将该表输出到一个文件中,找到xp_cmdshell可以做到这一点。但是该存储过程无法获取我的表var,因为它打开了与DB的新连接(因为“bcp”)。

我需要临时将该表保存到我的数据库中(之后将其丢弃,但那不是什么大不了的事)。

如何快速将存储在表变量中的表保存为数据库中的真实表?

1 个答案:

答案 0 :(得分:2)

select *
into table --destination
from @table --source

作为奖励,请围绕此事务进行处理,以确保在发生错误时不会留下“悬空”表。 DDL在SQL Server中是事务性的。在回滚时,表将被删除。