• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 介绍Sql Server临时表和游标实例用法

介绍Sql Server临时表和游标实例用法

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了Server,实例,游标等相关知识,希望本文的分享对您有所帮助
这篇文章主要介绍了Sql Server临时表和游标的使用小结,需要的朋友可以参考下

1.临时表

临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。
临时表有局部和全局两种类型

2者比较:

局部临时表的名称以符号 (#) 打头
仅对当前的用户连接是可见的
当用户实例断开连接时被自动删除
全局临时表的名称以符号 (##) 打头
任何用户都是可见的
当所有引用该表的用户断开连接时被自动删除
实际上局部临时表在tempdb中是有唯一名称的
例如我们用sa登陆一个查询分析器,再用sa登陆另一查询分析器

在2个查询分析器我们都允许下面的语句:


use pubs
go
select * into #tem from jobs

分别为2个用户创建了2个局部临时表
我们可以从下面的查询语句可以看到


SELECT * FROM [tempdb].[dbo].[sysobjects] 
where xtype='u'

判断临时表的存在性:


if object_id('tempdb..#tem') is not null 
begin 
 print 'exists' 
end 
else 
begin 
 print 'not exists' 
end

特别提示:
1。在动态sql语句中创建的局部临时表,在语句运行完毕后就自动删除了
所以下面的语句是得不到结果集的


exec('select * into #tems from jobs')
select * from #tems

2。在存储过程中用到的临时表在过程运行完毕后会自动删除
但是推荐显式删除,这样有利于系统

ii。游标
游标也有局部和全局两种类型
局部游标:只在声明阶段使用
全局游标:可以在声明它们的过程,触发器外部使用

判断存在性:


if CURSOR_STATUS('global','游标名称') =-3 and CURSOR_STATUS('local','游标名称') =-3 
begin 
 print 'not exists' 
end
SELECT * FROM [tempdb].[dbo].[sysobjects] where xtype='u'

判断临时表的存在性:


if object_id('tempdb..#tem') is not null 
begin 
 print 'exists' 
end 
else 
begin 
 print 'not exists' 
end

特别提示:
1。在动态sql语句中创建的局部临时表,在语句运行完毕后就自动删除了
所以下面的语句是得不到结果集的


exec('select * into #tems from jobs')
select * from #tems

2。在存储过程中用到的临时表在过程运行完毕后会自动删除
但是推荐显式删除,这样有利于系统

ii。游标
游标也有局部和全局两种类型
局部游标:只在声明阶段使用
全局游标:可以在声明它们的过程,触发器外部使用

判断存在性:


if CURSOR_STATUS('global','游标名称') =-3 and CURSOR_STATUS('local','游标名称') =-3 
begin 
 print 'not exists' 
end
SELECT * FROM [tempdb].[dbo].[sysobjects] where xtype='u'

判断临时表的存在性:


if object_id('tempdb..#tem') is not null 
begin 
 print 'exists' 
end 
else 
begin 
 print 'not exists' 
end

特别提示:
1。在动态sql语句中创建的局部临时表,在语句运行完毕后就自动删除了
所以下面的语句是得不到结果集的


exec('select * into #tems from jobs')
select * from #tems

2。在存储过程中用到的临时表在过程运行完毕后会自动删除
但是推荐显式删除,这样有利于系统

ii。游标
游标也有局部和全局两种类型
局部游标:只在声明阶段使用
全局游标:可以在声明它们的过程,触发器外部使用

判断存在性:


if CURSOR_STATUS('global','游标名称') =-3 and CURSOR_STATUS('local','游标名称') =-3 
begin 
 print 'not exists' 
end

以上就是介绍Sql Server临时表和游标实例用法的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 使用use index优化sql查询的详细介绍
  • 如何获取SqlServer2005表结构(字段,主键,外键,递增,描述)
  • SQL SERVER 日期格式转换详解
  • 如何在SQL Server中实现 Limit m,n 的功能
  • 基于SQL中SET与SELECT赋值的区别详解
  • 深入Mysql,SqlServer,Oracle主键自动增长的设置详解
  • DBA应该知道的一些关于SQL Server跟踪标记的使用
  • SQL查询超时的设置方法(关于timeout的处理)
  • MySQL rownumber SQL生成自增长序号使用介绍
  • mysql启动提示mysql.host 不存在,启动失败的解决方法

相关文章

  • 2018-12-05ORACLE常见错误代码的分析与解决(二)
  • 2018-12-05phpmyadmin报错:#2003 无法登录 MySQL服务器的解决方法
  • 2017-05-11Mysql 本地计算机无法启动 mysql 服务 错误 1067:进程意外终止。
  • 2018-12-05设置SQLServer数据库中某些表为只读的多种方法分享
  • 2018-12-05MySQL:简单介绍concat和group_concat使用方法
  • 2018-12-05MySQL优化总结-查询总条数
  • 2018-12-05sql 查询慢的原因分析
  • 2018-12-05获取星期几的名称
  • 2018-12-05常用mysql优化sql语句查询方法汇总
  • 2018-12-05MySQL绿色版设置编码以及1067错误详解

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MYSQL设置触发器权限问题的解决方法
    • SQL语句的MINUS,INTERSECT和UNION ALL的解析
    • ACCESS中关于SQL语句的转义字符
    • mysql不重启的情况下修改参数变量
    • MySQL中两种子查询的写法
    • MySQL如何查看连接数和连接状态
    • INSERT INTO SELECT语句与SELECT INTO FROM语句的一些区别
    • 数据库sql select查询的工作原理
    • MySQL删除数据库(delete)2种方法
    • 比较Java数据类型与MySql数据类型

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有