zoukankan      html  css  js  c++  java
  • SQLServer系统表使用简介(sysobjects、syscolumns、syscomments等)转载

    sysobjects:记录了数据库中每一个表、视图、约束、存储过程等详细内容的表。
    表中常用的字段如下 :

    列名数据类型描述
    name sysname 对象名
    id int 对象标识号
    xtype char(2) 对象类型,C=CHECK约束 D=默认值或DEFAULT约束 F=FOREIGN KEY约束 L=日志 FN=标量函数 IF=内嵌表函数 P=存储过程 PK=主键约束 RF=复制筛选存储过程 S=系统表 TF=表函数 TR=触发器 U=用户表 UQ=UNIQUE约束 V=视图 X=扩展存储过程
    parent_obj int 父对象的对象标识号
    crdate datetime 对象创建日期

    object_id('obj_name',‘obj_type’)函数:参数类型为varchar或nvarchar,如果是varchar,系统自动转为nchar。返回值是obj_name在sysobjects表中的对应id。若未找到对应的obj_name,则返回NULL。
    object_name()函数:参数类型为int,传入sysobjects表中的id,返回sysobjects表中的name。

    --判断表是否已经存在于数据库中,如果有,则删除表。
    if Exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[表名]
    
    if(Exists(select * From sysobjects Where xtype='U' And Name='表名')) 
    drop table [dbo].[表名]
    

    syscolumns:记录表、视图中的字段,以及存储过程中的参数。
    表中常用的字段如下 :

    列名数据类型描述
    name sysname 字段名称
    id int 字段所属表id
    xtype char(2) 字段类型
    length smallint 字段物理存储长度

    syscomments
    表中常用的字段如下 :

    列名数据类型描述
    id int 对象对应sysobjects表中的id
    text nvarchar(4000) SQL定义的文本

    若存储过程等SQL语句超过4000,可以使用sp_helptext @pro_name获取存储过程的全部内容。

    SELECT * FROM sysobjects WHERE xtype = <type of interest>
    --例如:查看视图
    SELECT * FROM sysobjects WHERE xtype = 'V'

    判断数据库中是否已经存在某个表,有的话就删除该表

    --方法一:
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[表名]

    --方法二:
    if exists (select * from sysobjects where id = object_id(N'表名') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[表名]

    --方法三:
    if(Exists(Select * From SysObjects Where xtype='U' And Name='表名'))
    drop table [dbo].[表名]

    1、问:object_id(N'表名')中N'代表什么意思?

    答:N'' 代表 Unicode类型.可以支持不同语种的对象名

    2、 问:select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[usertab]')   and   OBJECTPROPERTY(id,   N'IsUserTable')   =   1   
    这句中的object_id(N'[dbo].[usertab]')和OBJECTPROPERTY(id,   N'IsUserTable')   =   1   
    是什么意思?

    答:object_id(N'[dbo].[usertab]'):是得出系统给表usertab分配的唯一ID   
    OBJECTPROPERTY(id,   N'IsUserTable')   =   1   
    该对象的属性是表类型的 objectproperty(id,property)函数的使用,

    3、 问:USE master SELECT * FROM ...SysObjects ” ...sysobjects ” -- 三个句点的前缀是什么意思?

    答:对数据库对象名的 Transact-SQL 引用可以是由四部分组成的名称,格式如下:[ server_name.[[database_name].[owner_name]. | database_name.[owner_name]. | owner_name.] ] object_name



  • 相关阅读:
    samtools使用过程中出现的问题
    转移灶,原发灶,cfDNA的外显子测序得到的突变点的关系
    韦恩图的画法
    python的计算保留小数
    awk的输出格式控制:print 和printf
    awk遇到windows 的^M
    从引物序列出发查找pcr产物的内容和在基因组上的位置
    八.Windows内核保护机制--页保护3--PDE PTE属性
    九.Windows内核保护机制--TSS
    七.Windows内核保护机制--陷阱门
  • 原文地址:https://www.cnblogs.com/anyihen/p/12326543.html
Copyright © 2011-2022 走看看