T-SQL
前言
虽说现在 orm,nosql 对数据的操作会减少很多 t-sql 的编程,但是 t-sql 这应该是每个程序员要掌握的,接下来的两周准备把这块知识点进行系统总结.
1. 系统表
存储 SQL 所有的系统信息.存储有关数据库服务中的元数据所谓元数据即(比如数据服务器有哪些用户数据库,数据库服务器有哪些登陆账号,
数据库中都有哪些表,每个表都有哪些字段 每个数据库有哪些存储过程,视图等等的数据),系统表一般 sys 开头.
任何用户都不应直接更改系统表.(不要尝试使用 DELETE,UPDATE,INSERT 语句或用户定义的触发器修改系统表.)
若要检索存储在系统表中的信息,应用程序应使用下列组件之一:
系统存储过程
Transact-SQL 语句和函数
SQL Server 管理对象 (SMO)
复制管理对象 (RMO)
数据库 API 目录函数
2. 几个重要的系统表
2.1.sysdatabases
Microsoft SQL Server 上的每个数据库在表中占一行.
最初安装 SQL Server 时,sysdatabases 包含 master,model,msdb,mssqlweb 和 tempdb 数据库的项.
关键字段:
name :库的名字;
dbid :库的 ID,dbid 从 1 到 5 是系统的.分别是:master,model,msdb,mssqlweb,tempdb 这五个库.
select * from master.dbo.sysdatabases 就可以查询出所有的库名.
2.2.Sysobjects
SQL-SERVER 的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束,默认值,日志,规则,存储过程等.
关键字段
Name:对象名称
id:对象 ID
xtype(type):对象类型
uid:所有者对象用户 id
status: 对象状态.
对象类型 (xtype).可以是下列对象类型中的一种:
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 = 扩展存储过程
当 xtype='U' and status>0 代表是用户建立的表,对象名就是表名,对象 ID 就是表的 ID 值(object_id('表名')).
select * from wyl_db.dbo.sysobjects where xtype = 'U'and status > 0--就可以列出库
判断是否存在
if (object_id('proc_get_student', 'P') is not null)--判断存储过程是否存在另外一种
if (exists(select * from sys.objects where name = 'proc_get_student')) //
注:proc_get_student 是一个存储过程名称,p 代表是对象类型为存储过程,对象类型,就上面已列出.
2.3.syscolumns
每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行.该表位于每个数据库中.
关键字段有:
name :字段名称
id:表的 id 号
colid :字段 id 号.
其中的 ID 是 刚上我们用 sysobjects 得到的表的 ID 号.
判断是否存在
IF COL_LENGTH('A', 'C') IS NOT NULL注:A是表名C是列名或者:select * from syscolumns where id = object_id('表名') and name = '列名'注:存在则返回此列的一条说明记录,不存在返回空;
3. 其他系统表
wyl_dbwyl_db.dbo.sysaltfiles保存数据库的文件syscharsets字符集与排序顺序sysconfigures配置选项syscurconfigs当前配置选项syslanguages语言syslogins登陆帐号信息sysoledbusers链接服务器登陆信息sysprocesses进程sysremotelogins远程登录帐号sysconstrains限制sysfilegroups文件组sysfiles文件sysforeignkeys外部关键字sysindexs索引sysmenbers角色成员syspermissions权限systypes用户定义数据类型sysusers用户
来源: http://www.cnblogs.com/kmonkeywyl/p/5765232.html