sqlserver 临时表理解

临时表 作用域,生存周期

显示调用Drop Table语句
当局部临时表在存储过程内被创建时,存储过程结束也就意味着局部临时表被Drop。
当前会话结束,在会话内创建的所有局部临时表都会被Drop。

sqlserver 会话
会话: 一个用户连接产生的所有上下文信息。一个查询分析器窗口就是一个会话
-- 查看SQL阻塞信息
with tmp as (
    select * from master..sysprocesses t where t.blocked != 0
    union all
    select b.* from master..sysprocesses b
        join tmp t on b.spid = t.blocked 
)
select t.spid, t.blocked, t.status, t.waittype, t.lastwaittype, t.waitresource, t.waittime
    , DB_NAME(t.dbid) DbName, t.login_time, t.loginame, t.program_name, dc.text
from (select spid from tmp group by spid) s
    join master..sysprocesses t on s.spid = t.spid
    cross apply master.sys.dm_exec_sql_text(t.sql_handle) dc

-- 查看所有会话的状态、等待类型及当前正在执行SQL脚本
select t.spid, t.kpid, t.blocked, t.status, t.waittype, t.lastwaittype, t.waitresource, t.waittime
    , DB_NAME(t.dbid) DbName, t.login_time, t.last_batch, t.loginame, t.program_name, t.hostname, t.hostprocess
    , t.cmd, t.stmt_start, t.stmt_end, t.request_id, dc.text
from    master.sys.sysprocesses t
    outer apply master.sys.dm_exec_sql_text(t.sql_handle) dc
where    t.spid >= 50
 
--查询所有会话
select * from sys.dm_exec_sessions where session_id in (102,315);
--查询会话对应的SQl
select er.session_id, CAST(csql.text AS varchar(255)) AS CallingSQL
from master.sys.dm_exec_requests er WITH (NOLOCK)
       CROSS APPLY fn_get_sql (er.sql_handle) csql
where er.session_id =309

会话的生存周期

查询临时表
use tempdb
go
select * from sys.objects where type='u' and name like'#%'

1 会话中的临时表
2 存储过程中的临时表
3 EF链接数据库怎样叫一个会话
4 ADO.net 如何叫一个会话
5 Demo 批量把数据写入临时表,然后通过存储过程写入各实体表

 

转载于:https://www.cnblogs.com/zoumin123/p/7835972.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值