【杂记 关于访问SQL SERVER2005 的系统对象】
SQL SERVER维护着一组表,存储所有对象,数据类型,约束,配置选项及SQL能访问的资源,这些表称为系统目录(系统基本表).
我们在SQL SERVER2005里有很多种方法来访问元数据.一般是使用目录视图和系统函数,信息架构视图只能包含它们全部的一部分.
最佳接口:目录视图
目录视图都位于SYS架构下,包括了动态管理对象(DMV和DMF)和兼容性视图。
兼容性视图是为了提供用户能继续访问SQL2000的系统表的一个子集(未来版本也许会被移除)
它特点1:它的名称跟SQL2000里原来的系统表是一样的(比如sysobjects sysindex),当然查询他们得到的结果不完全一样;
特点2:他不包含关于2005新特性的一些列(比如分区 partitioning)
特点3:只能在MASTER数据库下运行(只针对试用版)
其实所谓目录视图我理解为2000的系统表的详细分解 并且增加了很多新功能显示的列内容.
比如目录视图:sys.objects ==>sys.tables ==>sys.columns 在sys.tables 里面显示了sys.objects的所有列并且还有关于Table本身的列,但是sys.tables行数就没有就少于sys.objects的行数,它只包含关于Table的行
一句话概括就是说:基础视图包含了列的子集和行的超子集,而生成视图包含了列的超子集和行的子集.(上面的列子中 sys.objects 是基础视图 sys.tables 是生成视图)
信息架构视图:
大多数通过目录视图得到的信息都可以通过信息架构视图得到。但还是有少量特定功能信息没有在其中.
选择的使用时机:我们的代码要求有比较好的移植性;想得到的都是一些标准功能(不包括比如索引 文件组 CLR 等元数据)
系统函数:
主要是一些属性函数:SEVERPROPERTY()、COLUMNPROPERTY()、DATABASEPROPERTY()、INDEXPROPERTY()等。具体查看MSDN
系统存储过程:
一般以sp_开头 使用传入参数或者不使用 可以返回系统信息 但是缺点是无法控制返回信息的量.
相关文档:
什么是索引
索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据;
Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引;
索引由根节点、分支节点和叶子节点组成,上级索引块包含下级索引块的索引数据,叶节点包含索引数据和确定行 ......
#1. 首先以管理员的身份登录到oracle系统中
cmd;
sqlplus sys/sys as sysdba;
#2.创建用户test,密码为test
create user test identified by test;
#3.创建表空间,在D盘下建立50m的表空间data_dbf
create tablespace ts_tablespace datefile 'D:\data_dbf' size 50m;
#4.为用户分配表空间
alter user test default t ......
年初的时候一直在做一个网站MSSQL2000->MySQL5的迁移工作,因为采用了不同的程序系统,所以主要问题在数据的迁移。由于2个系统数据库结构差异非常大,不方便采取SQLSERVER里导入MYSQL的ODBC数据源的功能(也不推荐这么做,字段类型等不同点会搞死人的~),因此就在WINDOWS下自己写PHP脚本从SQLSERVER里读数据,然后按照 ......