我可以将#temp 表的表结构复制到新的物理表吗?

Rac*_*hel 6 sql-server-2005 sql-server temporary-tables

我有一个#tempTable使用创建的

SELECT *
INTO #tempTable
FROM OPENROWSET('Microsoft.Ace.OLEDB.12.0', 'Excel 8.0;Database=MyFileName.xls', 
'SELECT * FROM [Sheet1$]')
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以将 的表结构复制#tempTable到新的物理表?

临时表包含许多包含数字、日期、小数和字符串的列,我不想识别和手动定义每一列。

我正在使用 SQL Server 2005

Aar*_*and 12

为什么不使用您用来创建#temp 表的相同方法?

SELECT * INTO dbo.NewTable FROM #tempTable;
Run Code Online (Sandbox Code Playgroud)

  • 只是在@AaronBertrand 已经说过的内容中添加一点,当您从#temptable 执行 select * into Newtable 时,它​​也会复制数据。如果您只想要表结构(而不​​是数据),那么 select * into Newtable from #temptable where 1=2 ... 注意 where 子句始终为 false,因此将创建一个没有数据的表。 (4认同)

dru*_*zin 6

是的,只需这样做:

select *
into dbo.NewTable
FROM #tempTable
Run Code Online (Sandbox Code Playgroud)