我有一个临时表,它汇总了来自多个表的列。
我想将这个临时表转换成永久表,而不需要显式地指定列名和它们的类型。
不知道我是否已经解释清楚了。
我有一个临时表,它汇总了来自多个表的列。
我想将这个临时表转换成永久表,而不需要显式地指定列名和它们的类型。
不知道我是否已经解释清楚了。
SELECT ... INTO
语句:SELECT *
INTO dbo.normal_table
FROM #temp_table
-- WHERE 1 = 2; --add if you only want table structure and not actual data
创建表格后需要检查的事项:
IDENTITY
列和当前值(可能需要重新设置)ALTER
修改普通表)COLLATION
,tempdb可能与您的数据库具有不同的排序规则VARCHAR
、NVARCHAR
、CHAR
、DECIMAL
等),如果SELECT
包含表达式如果临时表不包含IDENTITY
列,您可以使用以下命令添加:
SELECT ID = IDENTITY(INT,1,1)
,col1 = NULL -- NULL by default are treated as INT so you may need casting
,col2 = CAST(NULL AS DECIMAL(38,10))
,t.*
INTO dbo.table_name
FROM #temp t