+ -
当前位置:首页 → 问答吧 → if not object_id('Tempdb..#T') is null drop table #T??

if not object_id('Tempdb..#T') is null drop table #T??

时间:2011-11-30

来源:互联网

if not object_id('Tempdb..#T') is null
drop table #T
这句话什么意思呢?好像我经常看到这类的语句,看那个object_id是否存在,要不就删掉这个TABLE,写这句命令是为了什么呢?什么时候才要写这命令的呢?我是不是很菜,呵

作者: qq576420473   发布时间: 2011-11-30

判断语句.
如果 tempdb数据库中的#T临时表存在的话,则删除它.

删除它的目的是后面想要生成这个临时表,如果原先有,就生成不了了.

作者: qianjin036a   发布时间: 2011-11-30

如果临时表#T 存在,就删除.

作者: xuam   发布时间: 2011-11-30

object_id 是一个系统函数 返回架构范围内对象的数据库对象标识号。

那一句就是 如果函数object_id 返回的结果 不为 null 就执行下面的语句

作者: Beirut   发布时间: 2011-11-30

返回架构范围内对象的数据库对象标识号。

重要提示: 
使用 OBJECT_ID 不能查询非架构范围内的对象(如 DDL 触发器)。对于在 sys.objects 目录视图中找不到的对象,需要通过查询适当的目录视图来获取该对象的标识号。例如,若要返回 DDL 触发器的对象标识号,请使用 SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog'。
 


 Transact-SQL 语法约定

语法
 
OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ] 
  object_name' [ ,'object_type' ] )
 

参数
' object_name '
要使用的对象。object_name 的数据类型为 varchar 或 nvarchar。如果 object_name 的数据类型为 varchar,则它将隐式转换为 nvarchar。可以选择是否指定数据库和架构名称。

' object_type '
架构范围的对象类型。object_type 的数据类型为 varchar 或 nvarchar。如果 object_type 的数据类型为 varchar,则它将隐式转换为 nvarchar。有关对象类型的列表,请参阅 sys.objects (Transact-SQL) 中的 type 列。

返回类型
int 

异常
对于空间索引,OBJECT_ID 返回 NULL。

出现错误时,返回 NULL。

用户只能查看其拥有的安全对象的元数据,或者已对其授予权限的安全对象的元数据。也就是说,如果用户对该对象没有任何权限,则那些会生成元数据的内置函数(如 OBJECT_ID)可能返回 NULL。有关详细信息,请参阅元数据可见性配置和元数据可见性故障排除。

注释
当该参数对系统函数可选时,则采用当前数据库、主机、服务器用户或数据库用户。内置函数后面必须跟括号。

当指定临时表名时,除非当前数据库为 tempdb,否则必须在该临时表名之前加上数据库名称。例如:SELECT OBJECT_ID('tempdb..#mytemptable')。

系统函数可以在选择列表、WHERE 子句和任何允许使用表达式的地方使用。有关详细信息,请参阅表达式(Transact-SQL)和 WHERE (Transact-SQL)。

作者: Beirut   发布时间: 2011-11-30

引用 3 楼 beirut 的回复:
object_id 是一个系统函数 返回架构范围内对象的数据库对象标识号。

那一句就是 如果函数object_id 返回的结果 不为 null 就执行下面的语句


作者: fredrickhu   发布时间: 2011-11-30

其实它的作用就是存在这个表的话就删除。

作者: fredrickhu   发布时间: 2011-11-30

只有在以下情况下需要用:
我要在数据库中建立一个表,但又不确定该数据库中是否存在该表,则判断如果存在该表,则删除。
因为如果不删除这个同名的表,则新建同名表则会报错不允许创建

作者: renwenli07461   发布时间: 2011-11-30

就像7楼说的,如果不加这个判断,那么在数据库已经存在同名临时表的情况下,你就不能创建新的临时表了。

作者: gogodiy   发布时间: 2011-11-30

热门下载

更多