日期:2014-05-18  浏览次数:20572 次

问个临时表问题
数据库里面有一个表
-----------------------
表名:TBALE_01
ID,Name,addrID,Top....
-----------------------------------
创建一个临时表,表名例如叫temp_tb;
ID,Name,addrID,Top....(字段名和上面一样)
----------------------------------------
就是有部分字段的数据类型不一样,
例如TBALE_01的addrID为INT类型,临时表我希望为varchar类型
而临时表addrID的数据来自SQL查询语句,其他数据比如ID,Name就来源于TBALE_01

我要怎么创建这个临时表?

------解决方案--------------------
你就按照你想的类型建表,然后插入的时候吧类型不同的进行一下转换就可以了
------解决方案--------------------
复制表 select * into temp_tb from TBALE_01 where (同步条件)
修改字段类型 ALTER TABLE temp_tb ALTER COLUMN addrID varchar
修改字段来源值 update temp_tb set addrID =''

------解决方案--------------------
如果你字段有150多个,那可以这样:
select top (0) * into temp_tb from TBALE_01来创建,但这样无法复制源表的约束、索引和触发器。
然后再将你需要修改数据类型的字段通过alter语句来修改即可。