加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

判断临时表是否存在(临时表的删除)

发布时间:2020-12-12 13:54:44 所属栏目:MsSql教程 来源:网络整理
导读:以下是在网上搜索的一个说明: 临时表有两种类型:本地和全局。 它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。 全局临时表的名称以两个数

以下是在网上搜索的一个说明:

临时表有两种类型:本地和全局。

它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。

全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

我写这篇文章的主要目的是,如果判断这个临时表是否存在。

方式一:

[sql]? view plain copy
  1. IF??EXISTS?(SELECT?*?FROM?sysobjects?WHERE?object_id?=?OBJECT_ID(N'[dbo].[#tempTable]')?AND?type?in?(N'U'))??
  2. ????Begin??
  3. ????????DROP?TABLE?[dbo].[tempTable]??
  4. End??

当然你会发现你是错误的。如果不认真看文章的。。。。兄弟这是一个坑。

?

方法二:

copy
    if?exists?(select?*?from?tempdb.dbo.sysobjects?where?id?=?object_id(N'[#temptable]'))??
  1. ??????????TABLE?#temptable??
  2. 当然这还是一个坑,

    真正的方法:

    copy
      if?object_id('tempdb..#tempTable')?is?not?null???
    copy
      Begin??
    1. ???????TABLE??#tempTable??
    2. 为什么是错误的呢,网上找了下相关的说法.

      方法一:因为所在数据库不同
      方法二:因为临时表名已变 就到这里了。

      (编辑:李大同)

      【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读