MS SQL SERVER 2008 使用OBJECT_ID判断临时表是否存在

摘要:
MSSQLSERVER2008使用OBJECT_ID判断临时表是否存在我们在写sql脚本的时候经常会用到临时表,有时间也需要根据临时表是否存在做一些逻辑处理。还好sqlserver已经集成了一个Object_ID的函数,能够判断是否创建了临时表。OBJECT_ID参数:'object_name'要使用的对象。object_type的数据类型为varchar或nvarchar。--创建一个临时表CREATETABLE#mytemptable--判断临时表是否存在,存在则删除IFOBJECT_IDISNOTNULLBEGINDROPTABLE#mytemptablePRINT1ENDELSEBEGINPRINT2END第一次执行结果:1第二次执行结果:2二、判断临时表是否存在。那么如果这个会话结束了没有手动释放资源,那么临时表是否还会占用空间。
MS SQL SERVER 2008 使用OBJECT_ID判断临时表是否存在
我们在写sql 脚本的时候经常会用到临时表,有时间也需要根据临时表是否存在做一些逻辑处理。还好sql server已经集成了一个Object_ID的函数,能够判断是否创建了临时表。使用挺方便的。
OBJECT_ID 参数:
'object_name'
要使用的对象。object_name的数据类型为varcharnvarchar。如果object_name的数据类型为varchar,则它将隐式  转换为nvarchar。可以选择是否指定数据库和架构名称。
'object_type' 
架构范围的对象类型。object_type的数据类型为varcharnvarchar。如果object_type的数据类型为varchar,则它将   隐式转换为nvarchar。有关对象类型的列表,请参阅sys.objects (Transact-SQL)中的type列。

第一个Name就是我们创建的临时表的名称如果是临时表需要(tempdb.dbo.#mytemp),第二个type其实可以不用填写。我在使用的时候一般都是给第一个参数,也没深入了解第二个参数。

实例:

一、判断临时表是否存在,如果存在则删除。

--创建一个临时表
CREATETABLE#mytemptable
(
id INT
)
--判断临时表是否存在,存在则删除
IF OBJECT_ID(N'tempdb.dbo.#mytemptable') ISNOTNULL
BEGIN
DROPTABLE#mytemptable
PRINT 1
END
ELSE
BEGIN
PRINT 2
END
第一次执行结果:1

第二次执行结果:2

二、判断临时表是否存在。如果不删除将一直存在。

--创建一个临时表
CREATETABLE#mytemptable(id INT)
--没有删除将一直存在
IF OBJECT_ID(N'tempdb.dbo.#mytemptable') ISNOTNULL
BEGIN
PRINT 1
END
ELSE
BEGIN
PRINT 2
END

执行结果:1

这个执行结果是在一个查询分析器里面执行的结果,开启一个就会有一个会话存在,如果没有关闭这个会话他将一直存在。

那么如果这个会话结束了没有手动释放资源,那么临时表是否还会占用空间。

待续未完。

标签:SqlServer

免责声明:文章转载自《MS SQL SERVER 2008 使用OBJECT_ID判断临时表是否存在》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CSS文本相关之水平排列[4]mybatis 遍历map;下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

OA之手机短信模块(一)

  前言    最近太忙,没有时间写博客,也发觉没有主题可写.就把目前做的模块拿出来赚点点击率.也适当回击一下以前公司同事写着一块,却不肯说原理给我们听.其实这个很简的.. 用途 1.       可以用于OA,即时通讯,预警系统等. 2.       也可以写成组件,供其它模块调用,如工作流等. 开发手机技术简介 1.       SP服务提供商.现在移...

sql server排序规则冲突问题解决

问题:在项目数据库开发中,有时我们编写的脚本,在本机执行是没有问题的,但部署到服务器的时候,却在脚本运行时报错了。报错的中英文错误提示信息分别如下。中文:无法解决 equal to 运算中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突。English:Cannot resolv...

mysql索引长度的一些限制

一、myisam存储引擎 1. 数据库版本:阿里云RDS MySQL5.1 mysql> select @@version;+-------------------------------+| @@version |+-------------------------------+| 5.1.61-Alibaba-rds-201404-log |+-...

利用AspNetPager分页

分页的方法很多,现在介绍利用AspNetPager进行分页 一、准备工作 1.首先需要到准备分页控件AspNetPager.dll,点击这里下载。 官方网址是:http://www.webdiyer.com/Controls/AspNetPager 2.利用存储过程进行分页 -- ======================================...

Oracle --> Vertica 数据类型转换规则

需求:在Vertica数据库上建表,表结构来源于原Oracle数据库,故需要转换成Vertica数据库库表结构。   实际转换操作需要评估源库用到的所有数据类型和数据本身特性。 下面是总结的某场景下的替换规则,仅供参考。 1.时间类型: DATE   =>   TIMESTAMP   2.数字类型:NUMBER(   =>   NUMERIC...

mysql 归档方案(一次性)

一、 归档流程:                1. 导出需要的数据                2. 创建临时表table_tmp                3. 导入数据到临时表                4. 修改原始表名为table_bak                5. 修改临时表为原始表名 二、归档方式对比   1. select...