• SQLSERVER系统表(转载)


    1、查看表和试图

    SELECT * FROM sys.objects WHERE object_id = object_id('表名或视图名')
    在sqlserver中一般可通过查询sys.objects系统表来得知结果,不过可以有更方便的方法 
    如下: 
        if   object_id('tb_table') is not null  
            print 'exist' 
        else 
            print'not exist' 
    如上,可用object_id()来快速达到相同的目的,tb_table就是我将要创建的资源的名称,所以要先判断当前数据库中不存在相同的资源 
    object_id()可接受两个参数,第一个如上所示,代表资源的名称,上面的就是表的名字,但往往我们要说明我们所要创建的是什么类型的资源, 
    这样sql可以明确地在一种类型的资源中查找是否有重复的名字,如下: 
        if   object_id('tb_table','u') is not null  
            print 'exist' 
        else 
            print'not exist'

    第二个参数 "u" 就表示tb_table是用户创建的表,即:USER_TABLE地首字母简写 
    查询sys.objects中可得到各种资源的类型名称(TYPE列),这里之举几个主要的例子 
    u  -----------  用户创建的表,区别于系统表(USER_TABLE) 
    s  -----------  系统表(SYSTEM_TABLE) 
    v  -----------  视图(VIEW) 
    p  -----------  存储过程(SQL_STORED_PROCEDURE) 

    2、查看表的列名

    select * from syscolumns where id=object_id('表名') and name='列名'

    3、查看数据库

    select * from sys.databases where name = 'student'

    4、查看备份设备

    "select * from sys.backup_devices where name ='backupdb'

    (添加备份设备:exec sp_addumpdevice 'disk','backupdb','d:\\backup\\backupdb.bak')

    5、查看数据文件

    select name, physical_name dbfile from sys.master_files where database_id=db_id('student')
     master数据库中sysdatabases表(是sqlserver中所有的数据库的库名) :
    如果你要查询的是所有数据库(用户/系统):
    select * from master..sysdatabases
    如果你要查询的是用户数据库,则使用:
    select * from master..sysdatabases where dbid > 4
    如果你要查询的是系统数据库,只需要把where字句改为dbid < 4即可。

    6、查看执行的sql语句

    SELECT cacheobjtype,objtype,usecounts,sql
     from sys.syscacheobjects where sql not like'%cach%' and sql not like '%sys.%'

    2.对应数据库中sysobjects表(反应的是相应数据库中所有的对象):
    这个表的用处是最大的,因为它里面存放的有:表(系统/用户)、存储过程(系统/用户)、视图、主键、外键等。
    这里就不一一说明了。
    比如你sqlserver中有个数据库名叫 test,如果要查询该数据库中的所有表对象:
    select * from test..sysobjects where type = ’u’ or type = ’s’
    这里的type = ’u’是表示用户表对象,type = ’s’是系统表对象,怎样单独查询用户表对象或者系统表对象就不用说了吧。
    如果你要查询的是存储过程当然也分了系统和用户了:
    这个是查询数据库中所有存储过程
    select * from test..sysobjects where type = ’p’
    如果你要查询的是用户存储过程则加上 and category <> 2 即可。
    查询系统存储过程就不用说了吧(category = 2 谁不知道。。。)
    查询视图与查询存储过程一样,比如:
    你查询的是数据库中所有视图
    select * from test..sysobjects where type = ’v’
    如果你要查询的是用户视图则加上 and category <> 2 即可。
    其他的就不说了,就把 它们的type给大家说下:
    type = ’ pk’ 表示主键。
    type = ’ d’  外键引用。
    type = ’uq’ 唯一索引。 

    下面附录一些常用系统表

    名称                           地址                                   说明 
    sysaltfiles         主数据库                               保存数据库的文件 
    syscharsets         主数据库                               字符集与排序顺序 
    sysconfigures     主数据库                               配置选项 
    syscurconfigs     主数据库                               当前配置选项 
    sysdatabases       主数据库                               服务器中的数据库 
    syslanguages       主数据库                               语言 
    syslogins             主数据库                               登陆帐号信息 
    sysoledbusers     主数据库                               链接服务器登陆信息 
    sysprocesses       主数据库                               进程 
    sysremotelogins主数据库                               远程登录帐号

    syscolumns           每个数据库                           列 
    sysconstrains     每个数据库                           限制 
    sysfilegroups     每个数据库                           文件组 
    sysfiles               每个数据库                           文件 
    sysforeignkeys   每个数据库                           外部关键字 
    sysindexs             每个数据库                           索引 
    sysmenbers           每个数据库                           角色成员 
    sysobjects           每个数据库                           所有数据库对象 
    syspermissions   每个数据库                           权限 
    systypes               每个数据库                           用户定义数据类型 
    sysusers               每个数据库                           用户

    我是搬运工,备查。

  • 相关阅读:
    Java泛型
    Java多态
    Anaconda+pycharm配置pytorch1.1.0+cuda 9.0+python3.7环境
    anaconda+fbprophet安装
    pycharm显示所有的tabs
    联想拯救者15-isk安装固态硬盘与系统迁移教程
    VS2017 C++操作mysql数据库
    mfc动态演示排序算法
    模拟处理机作业调度---短作业优先调度算法
    P3327 [SDOI2015]约数个数和
  • 原文地址:https://www.cnblogs.com/TPoint/p/3126703.html
Copyright © 2020-2023  润新知