临时表用法其中两个

临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。

临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

来自这里:传送门

select*into #d from tachecontractid  --#d没有提前声明

  

insertinto #temp
select*from tachecontractid where id=@id --#temp提前创建的(跟创建正常表一样 create ...()...)

 

selectidentity(int ,1,1) as id,*into #temp1 fromtachecontractid   --#temp1没有提前声明

  

第一种很常用

 

第二种次之

 

第三种很有用ol~意思就是按照你原本的顺序加上一个字段 id(随便起) 让它自增长

 

 

 

通过临时表可以给它加自增长的列 还可以用row_number()增加自增长

select * from (select *,row_number() over (order by id) as 'id1' from #temp) as t where id1=1

 

*******使用临时表的时候 ,要注意临时表的列的长度是多大,避免超出

第一种:通过sql语法来改变

select tmp1 as tmp2 into #tmp2 from tmp1
--修改临时表列的长度
alter table #tmp2 alter column tmp2 nvarchar(max)

第二种:通过加长第一次插入的值的长度

select tmp1 as tmp2,'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx' as xx into #tmp2 from tmp1





posted @ 2011-08-30 15:52  一个土豆一棵青菜  阅读(260)  评论(0编辑  收藏  举报