当前位置:  开发笔记 > 编程语言 > 正文

基于SQL Server中的临时表创建永久表

如何解决《基于SQLServer中的临时表创建永久表》经验,为你挑选了1个好方法。

我有一个临时表来聚合多个表中的列.

我想将此临时表转换为永久表,而无需明确指定列名称及其类型.

不知道我是否已经解释得这么好了



1> Lukasz Szozd..:

你可以使用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 列和当前值(可能需要重新播种)

DEFAULT列的值(如果临时表有默认值,则需要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

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有