zoukankan      html  css  js  c++  java
  • SQL SERVER 中的 object_id()函数

    在SQL server中,这个函数其实用的挺多的,如果你没用过,想必你一定在哪里看到过,现在迷迷糊糊,似懂非懂,今天笔者仔细讲解下它的功能。

      大家都知道在数据库中有一个系统表sysobjects,里面存储了数据库各个对象的信息。可以查询下看看结果。可以看出每个对象都有一个ID,这个表存储了表,存储过程,触发器,视图等相关信息。注意:字段没有。

      object_id就是根据对象名称返回该对象的id.
      object_name是根据对象id返回对象名称.
     

      select object_id(对象名)等同于:
      select id from sysobjects where name=对象名

      select object_name(id号)等同于:
      select name from sysobjects where id=id号

      SQL SERVER 2000以上版本都支持这个函数。

    另外一种说明:

    OBJECT_ID

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

    ms190328.note(zh-cn,SQL.90).gif重要提示

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

    1 OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ] 
    2     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

    示例:

    A. 返回指定对象的对象 ID

    1 USE master;
    2 GO
    3 SELECT OBJECT_ID(N'AdventureWorks.Production.WorkOrder') AS 'Object ID';
    4 GO

    B. 验证对象是否存在

    1 USE AdventureWorks;
    2 GO
    3 IF OBJECT_ID (N'dbo.AWBuildVersion', N'U') IS NOT NULL
    4 DROP TABLE dbo.AWBuildVersion;
    5 GO

    另外说明:SQL中object_id函数的用法

     
    语法: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)

     
    分类: 数据库
  • 相关阅读:
    获取连接无线路由客户机信息命令
    HTB进行流量控制方法
    exec函数族用法
    java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    struts2从请求取值的三种方式
    用jsp写的网页 怎么在传递参数时包含中文?
    Struts2使用DoubleSelect实现二级级联下拉框省份城市
    MySQL里主键与外键的关系
    查看struts2源码
    WIN7系统下,用笔记本发送WIFI信号让手机无线上网!
  • 原文地址:https://www.cnblogs.com/linjulin/p/5619756.html
Copyright © 2011-2022 走看看