临时表用法其中两个

本文深入解析SQL中的临时表,包括本地和全局临时表的区别、如何创建及使用,以及通过实例展示如何利用临时表进行数据处理,如添加自增长列和使用row_number()函数。

临时表与永久表相似,但临时表存储在 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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值