SQL中,如何将表A结构复制到临时表B中,但是临时表B里面有一个新的字段,并且A中的字段未知,怎么做?

如题所述

第1个回答  2013-05-27
1> select 1 as newCol,  test_main.*  into #new_tab  from test_main where 1=2
2> go

(0 行受影响)
1> select * from #new_tab
2> go
newCol      id          value
----------- ----------- ----------

(0 行受影响)

第2个回答  2013-05-27
create table B as select * from A;
alter table B add (colName type default ..);
第3个回答  2013-05-27
select * into #tmp
from A where 1 = 2

alter table #tmp add new_col data_type追问

非常感谢,那么再问一下,因为
set @sql='select * into #temp from'+@tableName+' where 1=2';
exec(@sql);
但是这样没有办法获取#temp来进行操作,该怎样写呢?

追答

set @sql='select * into #temp from'+@tableName+' where 1=2';
set @sql= @sql + ' alter table #temp add ..... '
exec(@sql);
如果你放在动态语句里,所有相关的操作都要放在动态语句里。不然取不到临时表。

还有一种方法就是创建全局临时表,就是##temp,这样就可以动态语句内外都可以用。

本回答被提问者采纳
第4个回答  2013-05-27
咕~~(╯﹏╰)b 我也不懂 我文盲

mssql如何复制表结构
--只复制结构 select * into 数据库名.dbo.新表名 from 数据库名.dbo.原表名 where 1=0 --复制到临时表 select * into #temptablename from 数据库名.dbo.原表名 where 1=0 --后面的where 1=0 只要不成立就行了,管它是1=2,还是1000=1001......

sql中如何使用临时表?
1、打开sql server management studio,点击新建查询,创建一个查询。2、创建一个临时表,其中Id是自增字段,第一条记录是1,第二条记录是2,自动增加,这个一般用来作标识,可以循环,其他字段是实际上循环时要取用的数据。3、然后插入数据。4、接着用一个循环,取出数据,并进行相应逻辑处理。5、最...

SQL select语句为了将查询结果放到临时表中使用哪个关键字
直接: select * into #Content from 表 truncate table #Content --清空临时表 drop table #Content --删除临时表还可以:create table #Content(UserID varchar(10),UserName varchar(10)) --创建临时表insert into #Content select UserID,UserName from tabletruncate table #Content ...

SQL如何用EXCEL导入一个临时表的相关字段,然后用临时表更新原有的表数 ...
IF @strOptions='In' AND NOT @strExcelPath IS NULL BEGIN SET @strExcelPath = '''Microsoft.Jet.OLEDB.4.0'',''Data Source="' + @strExcelPath + '";User ID=Admin;Password=;Extended properties=Excel 5.0'''--将数据存放到临时表(一)SET @strSql = 'SELECT ' + @strExcelFi...

SQL如何将这一查询结果放到临时表#TEMP中?
一、首先要建临时表:CREATE TABLE #TEMP --建临时表,表中的字段的数据类型跟要插入数据的查询结果对应的字段数据类型要一致。二、插入数据:INSERT INTO #TEMP,临时表的字段和查询中的字段对应要处理好。另:通常在建临时表前会判断临时表是否存在:IF Object_id('Tempdb..#TEMP') IS NOT NULL D...

sql如何将查询到的数据保存到临时表,求大神
select into #b from a where nm='obj'

SQL 用语句复制字段下的所用数据
SELECT ROW_NUMBER() OVER(ORDER BY aa) AS id, * #temp FROM A 这样给A 表排了一个顺序 按照AA列排序然后放到临时表,这个id相当于临时表#temp的主键 B 表也一样 ,然后直接用更新语句更新一下 即可

SQL怎样合并显示两个没有关联的表
1、首先打开SQL SERVER管理工具,用select语句查询一下当前表的记录。2、接下来需要通过row_number对表进行排序,将排序好的表存到临时表里面。3、接下来编写update语句,这里用到了表关联,如下图所示,通过关联将临时表的排序字段重新赋值给表的排序字段。4、然后记得要最后要删除临时表,如下图所示...

求sql语句两个表合并
union select p, j from b) A ---将两个表的所有数据连接,组成临时表 group by A.p having count(*) = 1) --根据产品分组,将临时表A中的a,b单独拥有产品列出 union (select a.p, (select a.j - b.j from a, b where a.p = bj) j from a, b where a.p = b.p) ...

怎样将一张表查询数据加到临时表中
一条语句只能做到将表的数据放到临时表,但是不能为临时表创 建主键的. 比如:create table temp_table as select * from table;如果要创建主键的话,就只能写到一个PL\/SQL块里面 比如: declare begin execute immediate 'create table temp_table ...

相似回答