• object_id()函数


    SQLServer数据库中,如果查询数据库中是否存在指定名称的索引或者外键约束等,经常会用到object_id('name','type')方法,做笔记如下:

    ?

    语法:object_id('objectname')或object('objectname','type')

    作用:该函数会返回指定对象的ID值,可以在sysobjects表中进行验证。

    其中objectname数据类型为 char 或 nchar。如果 object 的数据类型是 char,那么隐性将其转换成 nchar。

    type如下列表:

    V = View
    U = Table (user-defined)
    P = SQL Stored Procedure


    AF = Aggregate function (CLR)
    C = CHECK constraint
    D = DEFAULT (constraint or stand-alone)
    F = FOREIGN KEY constraint
    FN = SQL scalar function
    FS = Assembly (CLR) scalar-function
    FT = Assembly (CLR) table-valued function
    IF = SQL inline table-valued function
    IT = Internal table
    PC = Assembly (CLR) stored-procedure
    PG = Plan guide
    PK = PRIMARY KEY constraint
    R = Rule (old-style, stand-alone)
    RF = Replication-filter-procedure
    S = System base table
    SN = Synonym
    SQ = Service queue
    TA = Assembly (CLR) DML trigger
    TF = SQL table-valued-function
    TR = SQL DML trigger
    UQ = UNIQUE constraint
    X = Extended stored procedure

    例子如下:

    select object_id('fk_xxx_xx','F')会取出约束名为fk_xxx_xx的ID值,如返回144444444这个值。

    上面的语句等同:

    select ID from sysobjects where name='fk_xxx_xx' and type='F'

    ======================================================================================= 

    大家都知道在数据库中有一个系统表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号

    ======================================================================================= 

    判断临时表

    if object_id(N'tempdb..#ABC',N'U') is  null

    tempdb是SQL Server的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象。可以简单理解tempdb是SQLServer的速写板。应用程序与数据库都可以使用tempdb作为临时的数据存储区。一个实例的所有用户都共享一个Tempdb。

  • 相关阅读:
    百度一下,你就知道
    Struts 2.x 与Spring4.x整合出现:No mapping found for dependency [type=java.lang.String, name='actionPackages...
    Struts 2.x Unable to load configuration.
    CentOS 6使用VNC配置远程桌面
    Tomcat7配置数据源(Oracle)
    org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session
    java.lang.IllegalStateException: Target host must not be null, or set in parameters. scheme=null, host=null, path=Aict/listPagedAict.action
    vsftpd限制用户不能更改根目录
    CentOS6.3下搭建vsftpd(采用虚拟用户设置)
    Fedora 20忘记root密码
  • 原文地址:https://www.cnblogs.com/kuangwong/p/11346542.html
Copyright © 2020-2023  润新知