• 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)

     
    分类: 数据库
  • 相关阅读:
    【Android Developers Training】 49. 轻松录制视频
    【Android Developers Training】 48. 轻松拍摄照片
    【Android Developers Training】 47. 序言:拍摄照片
    【Android Developers Training】 46. 处理音频外放设备
    【Android Developers Training】 45. 控制音频焦点
    【Android Developers Training】 44. 控制你应用的音量和播放
    【Android Developers Training】 43. 序言:管理音频播放
    【Android Developers Training】 42. 从另一台设备接收文件
    【Android Developers Training】 41. 向另一台设备发送文件
    Linux开发常见问题:GCC:链接器输入文件未使用,因为链接尚未完成
  • 原文地址:https://www.cnblogs.com/linjulin/p/5619756.html
Copyright © 2020-2023  润新知