Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1303|回复: 0

object_id(N'[dbo].[PerPersonData]') AND OBJECTPROPERTY(id, N'IsUs

  [复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2012-3-4 20:36:34 | 显示全部楼层 |阅读模式
    请问:if exists (select * from dbo.sysobjects where
    id = object_id(N'[dbo].[PerPersonData]') and OBJECTPROPERTY(id, N'IsUserTable')
    =
    1)
    中的object_id(N'[dbo].[PerPersonData]')是什么意思?那个object_id函数?那个N?
    还有OBJECTPROPERTY(id,
    N'IsUserTable') = 1中的OBJECTPROPERTY函数是什么意思?那个=1又是什么意思?



    答:OBJECT_ID:返回数据库对象标识号。N是显式的将非unicode字符转成unicode字符,它来自 SQL-92 标准中的
    National(Unicode)数据类型,用于扩展和标准化,在这里可以不用,写作object_id(PerPersonData)。
    OBJECTPROPERTY:返回当前数据库中对象的有关信息。1表“真”。同样可以写成OBJECTPROPERTY(id,
    sUserTable) = 1。
    整条语句的意思是判断数据库里有没有存在PerPersonData这样一张表。




    经常看到 dbo.sysobjects 表,不知道到底是什么,整理如下:

    网上一般说是一张系统表,但我找了半天都没找到,其实,这是一张视图,再去数据库找找看吧。每个数据库都会有这么一张视图,我们可以方便的从这里面找出该数据库的相关信息。

        列名      数据类型      
    描述
    -----------------------------------------------------------
       
    name      sysname       对象名。     
        Id        int           对象标识号。     

        xtype     char(2)       对象类型。可以是下列对象类型中的一种:     
                  C   
    =   CHECK 约束   
                  D    =   默认值或 DEFAULT 约束   
                  
    F    =   FOREIGN KEY 约束   
                  L    =   日志
                  FN   
    =   标量函数
                  IF   =   内嵌表函数
                  P    =   
    存储过程
                  PK   =   PRIMARY KEY 约束(类型是 K)
                  RF   =   
    复制筛选存储过程
                  S    =   系统表
                  TF   =   
    表函数
                  TR   =   触发器
                  U    =   用户表
                  
    UQ   =   UNIQUE 约束(类型是 K)
                  V    =   视图
                  X    =   
    扩展存储过程
        uid       smallint       所有者对象的用户 ID。
        info      
    smallint       保留。仅限内部使用。
        status    int            保留。仅限内部使用。
       
    base_schema_ver int      保留。仅限内部使用。
        replinfo        int      
    保留。供复制使用。
        parent_obj      int      
    父对象的对象标识号(例如,对于触发器或约束,该标识号为表ID)。
        crdate          datetime 对象的创建日期。     

        ftcatid         smallint 为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。
       
    schema_ver     int     版本号,该版本号在每次表的架构更改时都增加。
        stats_schema_ver int     
    保留。仅限内部使用。
        type char(2) 对象类型。可以是下列值之一:               
                   
    C   =   CHECK 约束
                    D   =   默认值或 DEFAULT 约束
                   
    F   =   FOREIGN KEY 约束
                    FN =   标量函数
                    IF =   
    内嵌表函数
                    K   =   PRIMARY KEY 或 UNIQUE 约束     
                   
    L   =   日志
                    P   =   存储过程
                    R   =   
    规则
                    RF =   复制筛选存储过程
                    S   =   
    系统表
                    TF =   表函数
                    TR =   
    触发器
                    U   =   用户表
                    V   =   
    视图
                    X   =   扩展存储过程
        userstat    smallint     保留。
       
    sysstat     smallint     内部状态信息。
        indexdel    smallint     保留。
       
    refdate     datetime      留作以后使用。
        version     int           
    留作以后使用。
        deltrig     int           保留。
        instrig     int           
    保留。
        updtrig     int           保留。
        seltrig     int           
    保留。
        category    int           用于发布、约束和标识。
        cache       smallint     
    保留。


    --------------------------------------几个有用的语句(不断更新)--------------------

    --获取数据库中所有创建的表(非系统)
    select * from sysobjects
    where xtype='u' and status > 0
    --获取指定数据中表的所有字段与类型
    select A.name,B.name
    as Type
    from
    syscolumns A join
    systypes B on A.xtype = B.xusertype   

    where id = object_id('表名')
    回复

    使用道具 举报

    该用户从未签到

    发表于 2012-3-5 17:01:20 | 显示全部楼层
    aaaaa
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-21 22:50 , Processed in 0.368781 second(s), 45 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表