--查看表的属性 select * from sysObjects where [Name] = 'section' --用法 if exists ( select * from sysObjects where [Name] = 'section' and xtype='U' ) Drop Table table1 go Create table1 ( )--获取所有用户表 select Name from sysobjects where xtype='u' and status>=0--查看表的字段 select * from sysColumns c where c.id=object_id('section') select name from syscolumns where id=object_id('表名')
--查看用户 select * From sysusers where status<>0--查看谁引用了bbs_hits表(包括视图、存储过程、函数) Select distinct object_name(d.id) as 'program', o.xtype from sysdepends d inner join sysobjects o on d.id=o.id where object_name(depid)='bbs_hits'--查看与某一个表相关的视图、存储过程、函数 select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'--查看当前数据库中所有存储过程 select name as 存储过程名称 from sysobjects where xtype='P'--查询某一个表的字段和数据类型 select column_name,data_type from information_schema.columns where table_name = '表名' [n].[标题]: Select * From TableName Order By CustomerName其中xtype分别对应:C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 FN = 标量函数 IF = 内嵌表函数 K = PRIMARY KEY 或 UNIQUE 约束 L = 日志 P = 存储过程 R = 规则 RF = 复制筛选存储过程 S = 系统表 TF = 表函数 TR = 触发器 U = 用户表 V = 视图 X = 扩展存储过程
1、sysobjects
系统对象表。 保存当前数据库的对象,如约束、默认值、日志、规则、存储过程等
sysobjects 重要字段解释:
sysObjects (
Name sysname, --object 名称
id int, --object id
xtype char(2), -- object 类型
type char(2), -- Object 类型(与xtype 似乎一模一样? 有点郁闷…)
uid smallint, -- object 所有者的ID
... --其他的字段不常用到。
)
注:需要解释的是 xtype 和type 是一模一样的,他的数据为:
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
FN = 标量函数
IF = 内嵌表函数
K = PRIMARY KEY 或 UNIQUE 约束
L = 日志
P = 存储过程
R = 规则
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
V = 视图
X = 扩展存储过程
该表中包含该数据库中的所有对象,如有那些表 存储过程 视图 等信息
2、sysColumns 数据库字段表。 当前数据库的所有字段都保留在里面。
重要字段解释:
sysColumns (
name sysname, --字段名称
id int, --该字段所属的表的ID
xtype tinyInt, --该字段类型,关联sysTypes表
length smallint, --该字段物理存储长度
...
)
比如要查询某一个张表的有那些字段和这些字段的长度
3、sysUsers
当前数据库的系统组,以及用户。
sysUsers(
uid smallint, --用户id
name smallint , --名称
uid varbinary(85) , --属于一个登陆
....
)
对数据库的用户进行管理
4、sysdenpends
当前数据库的依赖关系。 比如 我要修改某一张的结构时,怕修改后会影响到其它的视图 函数 存储过程 ,这是在修改之前可以查询一下.那些视图 函数 存储过程调用了这个表的
这样在修改后就可以修改的视图 函数 存储过程,
一般程序员用到的系统表,基本也就这几个 其他的特殊的系统表(主要都在master 或者 tempdb )里面了。
本文转载自:http://www.sealee.com/sqlserver/sqlserver-8420.html
可以看看邹建老大的“中文版sql server 2000开发和管理应用实例”,里面有详细的说明。
syscharsets 主数据库 字符集与排序顺序
sysconfigures 主数据库 配置选项
syscurconfigs 主数据库 当前配置选项
sysdatabases 主数据库 服务器中的数据库
syslanguages 主数据库 语言
syslogins 主数据库 登陆帐号信息
sysoledbusers 主数据库 链接服务器登陆信息
sysprocesses 主数据库 进程
sysremotelogins主数据库 远程登录帐号syscolumns 每个数据库 列
sysconstrains 每个数据库 限制
sysfilegroups 每个数据库 文件组
sysfiles 每个数据库 文件
sysforeignkeys 每个数据库 外部关键字
sysindexs 每个数据库 索引
sysmenbers 每个数据库 角色成员
sysobjects 每个数据库 所有数据库对象
syspermissions 每个数据库 权限
systypes 每个数据库 用户定义数据类型
sysusers 每个数据库 用户
select * from sysObjects where [Name] = 'section'
--用法
if exists ( select * from sysObjects where [Name] = 'section' and xtype='U' )
Drop Table table1
go
Create table1 ( )--获取所有用户表
select Name from sysobjects where xtype='u' and status>=0--查看表的字段
select * from sysColumns c where c.id=object_id('section')
select name from syscolumns where id=object_id('表名')
--查看用户
select * From sysusers where status<>0--查看谁引用了bbs_hits表(包括视图、存储过程、函数)
Select distinct object_name(d.id) as 'program',
o.xtype
from sysdepends d inner join sysobjects o on d.id=o.id
where object_name(depid)='bbs_hits'--查看与某一个表相关的视图、存储过程、函数
select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'--查看当前数据库中所有存储过程
select name as 存储过程名称 from sysobjects where xtype='P'--查询某一个表的字段和数据类型
select column_name,data_type from information_schema.columns
where table_name = '表名'
[n].[标题]:
Select * From TableName Order By CustomerName其中xtype分别对应:C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
FN = 标量函数
IF = 内嵌表函数
K = PRIMARY KEY 或 UNIQUE 约束
L = 日志
P = 存储过程
R = 规则
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
V = 视图
X = 扩展存储过程
syscharsets 主数据库字符集与排序顺序
sysconfigures 主数据库 配置选项 syscurconfigs 主数据库当前配置选项 sysdatabases 主数据库服务器中的数据库 syslanguages 主数据库语言 syslogins 主数据库 登陆帐号信息 sysoledbusers 主数据库 链接服务器登陆信息 sysprocesses 主数据库进程 sysremotelogins主数据库 远程登录帐号 syscolumns 每个数据库 列 sysconstrains 每个数据库 限制 sysfilegroups 每个数据库 文件组 sysfiles 每个数据库 文件 sysforeignkeys 每个数据库 外部关键字 sysindexs 每个数据库 索引 sysmenbers 每个数据库角色成员 sysobjects 每个数据库所有数据库对象syscomments 数据库对象的详细资料 syspermissions 每个数据库 权限 systypes 每个数据库 用户定义数据类型 sysusers 每个数据库 用户
一样吗?也就是如果两个数据库中有相同的表那他们都是一样的吗?