将表定义克隆到SQL Server中的表变量

Har*_*a W 1 sql t-sql sql-server

有没有办法从现有表克隆表定义并重新创建为表变量?

DECLARE @TempTable1 TABLE (ID INT, Description VARCHAR(256))
Run Code Online (Sandbox Code Playgroud)

我需要重新创建一组具有相同列数和定义的表,而不重复该DECLARE TABLE语句.

此过程在MySQL上可用,如下所示.

CREATE TABLE TempTable1 LIKE TempTableMain;
Run Code Online (Sandbox Code Playgroud)

有可能这样做是Microsoft SQL Server吗?

请注意,实际场景中包含的列@TempTable数超过60列,需要从原始表创建10个以上的实例.


我不是在谈论数据插入或SELECT来自另一个表的离子,如下所示.我需要创建表定义.

DECLARE @TempTable TABLE(ID INT, Description VARCHAR(100))

INSERT INTO @TempTable 
VALUES (1, 'Test1'), (1, 'Test1');

SELECT *
INTO @TempTable2
FROM @TempTable1

SELECT * FROM @TempTable2
Run Code Online (Sandbox Code Playgroud)

And*_*lov 6

创建一个用户定义的类型与表中的列,可以说这样的:

CREATE TYPE MyTableType AS TABLE (ID INT, Description VARCHAR(256));
Run Code Online (Sandbox Code Playgroud)

然后使用以下类型声明表变量:

DECLARE @Table1 MyTableType;
DECLARE @Table2 MyTableType;
DECLARE @Table3 MyTableType;
Run Code Online (Sandbox Code Playgroud)