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

在MS-SQL中,如何在不首先声明临时表的情况下插入临时表并创建IDENTITY字段?

如何解决《在MS-SQL中,如何在不首先声明临时表的情况下插入临时表并创建IDENTITY字段?》经验,为你挑选了2个好方法。

我需要在临时表中选择一堆数据然后进行一些二次计算; 为了使其更有效地工作,我希望在该表上有一个IDENTITY列.我知道我可以先用一个标识声明表,然后将其余的数据插入其中,但是有没有办法在一步中完成它?



1> Matt Rogish..:

哦,你们有点信仰:

SELECT *, IDENTITY( int ) AS idcol
  INTO #newtable
  FROM oldtable

http://msdn.microsoft.com/en-us/library/aa933208(SQL.80).aspx



2> boes..:

您评论说:如果oldtable具有标识列,则无法正常工作.

我想那是你的答案.#newtable自动从oldtable获取标识列.运行下一个语句:

create table oldtable (id int not null identity(1,1), v varchar(10) )

select * into #newtable from oldtable

use tempdb
GO
sp_help #newtable

它向您显示#newtable确实具有标识列.

如果您不想要标识列,请在创建#newtable时尝试:

select id + 1 - 1 as nid, v, IDENTITY( int ) as id into #newtable
     from oldtable

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