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
SQLServer系统表使用简介(sysobjects、syscolumns、syscomments等)转载的更多相关文章
- sqlserver系统表操作
查询表名中包含‘user’的方法Select * From sysobjects Where name like '%user%' 如果知道列名,想查找包含有该列的表名,可加上系统表syscolumn ...
- SqlServer系统表认识和操作
地址:http://technet.microsoft.com/zh-cn/library/ms178551.aspx 一.sys.sysindexkeys 包含有关数据库的索引中的键或列的信息.(表 ...
- sqlserver系统表使用
SELECT s.table_catalog as 数据库名, o.name as 表名, c.name as 列名FROM INFORMATION_SCHEMA.TABLES s,--库 sys.o ...
- Oracle系统表整理+常用SQL语句收集(转载)
原文:https://www.cnblogs.com/jiangxinnju/p/5840420.html-- DBA/ALL/USER/V_$/GV_$/SESSION/INDEX开头的绝大部分都是 ...
- Sqlserver 中系统表sysobjects、syscolumns以及函数object_id
1.sysobjects 系统对象表. 保存当前数据库的对象,如约束.默认值.日志.规则.存储过程等 sysobjects 重要字段解释: sysObjects ( Name sysname, --o ...
- SQlServer 从系统表 sysobjects 中获取数据库中所有表或存储过程等对象
[sysobjects] 一.概述 系统对象表. 保存当前数据库的对象,如约束.默认值.日志.规则.存储过程等,该表中包含该数据库中的表 存储过程 视图等所有对象 在sqlserver2005,sql ...
- SQLSERVER系统视图,系统表,sys.sql_modules视图
SQLServer中提供了相当丰富的系统视图,能够从宏观到微观,从静态到动态反应数据库对象的存储结果.系统性能.系统等待事件等等.同时 也保留了与早期版本兼容性的视图,主要差别在于SQLServer2 ...
- SQLSERVER系统视图 sql server系统表详细说明
参考 https://www.cnblogs.com/luluping/archive/2012/11/05/2754639.html https://www.cnblogs.com/litubin/ ...
- SQL Server 系统表简介
SQL Server 系统表简介 系统目录是由描述SQL Server 系统的数据库.基表.视图和索引等对象的结构的系统表组成.SQL Server 经常访问系统目录,检索系统正常运行所需的必要信息. ...
随机推荐
- [算法笔记] PAT-ADV-1020
题目要求:给出二叉树的后序遍历序列和中序遍历序列,输出二叉树的层次遍历序列. (传送门) Sample Input 7 2 3 1 5 7 6 4 1 2 3 4 5 6 7 Sample Outpu ...
- python之面向对象的成员,方法,属性,异常处理
一.类的私有成员 1. 类中的私有成员是什么? 私有:只有满足一部分条件的才能使用 私有类的属性 私有对象的属性 私有方法 正常状态 class B: school_name = '老男孩教育' de ...
- Hbase 整合 Hadoop 的数据迁移
上篇文章说了 Hbase 的基础架构,都是比较理论的知识,最近我也一直在搞 Hbase 的数据迁移, 今天就来一篇实战型的,把最近一段时间的 Hbase 整合 Hadoop 的基础知识在梳理一遍,毕竟 ...
- Python3实现xml转json文件
使用了Python的 xml.etree.ElementTree 库,Python版本Python 3.6.6 from xml.etree import ElementTree LISTTYPE = ...
- Python用户终端输入
#用户输入,操作 print("python 用户输入操作") # input(提示字符串),函数阻塞程序,并提醒用户输入字符串 instr = input("pleas ...
- [noip模拟]祖孙询问<LCA>
[问题描述] 已知一棵n个节点的有根树.有m个询问.每个询问给出了一对节点的编号x和y,询问x与y的祖孙关系. [输入格式] 输入第一行包括一个整数n表示节点个数. 接下来n行每行一对整数对a和b表示 ...
- Matlab——m_map指南(2)
3.海岸线和深度测量 3.1.1 海岸线选项 m_coast('line', ...optional line arguments ); m_coast('line', ...optional lin ...
- 【webpack 系列】进阶篇
本文将继续引入更多的 webpack 配置,建议先阅读[webpack 系列]基础篇的内容.如果发现文中有任何错误,请在评论区指正.本文所有代码都可在 github 找到. 打包多页应用 之前我们配置 ...
- 空间复杂度(Space Complexity)
空间复杂度(Space Complexity) 算法得存储量包括: 1.程序本身所占空间. 2.输入数据所占空间. 3.辅助变量所占空间. 输入数据所占空间只取决于问题本身,和算法无关,则只需分析除输 ...
- ThreadPoolExcutor 原理探究
概论 线程池(英语:thread pool):一种线程使用模式.线程过多会带来调度开销,进而影响缓存局部性和整体性能.而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务.这避免了在处理短时间 ...