总结了几个常用的sql server系统表的使用
--查看表的属性
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 = 扩展存储过程
?
?
?
?
select name from sys.tables?? ----------- 查找当前数据库的所有数据库表名
select
?c.object_id,c.name as cname,t.name as tname,is_computed as isComputed, (select value from sys.extended_properties as ex where ex.major_id = c.object_id and ex.minor_id = c.column_id) as notes
from
?sys.columns as c inner join sys.tables as ta on c.object_id=ta.object_id inner join? (select name,system_type_id from sys.types where name<>'sysname') as t on c.system_type_id=t.system_type_id
where
?ta.name='area' order by c.column_id -----------------查找指定数据库表的字段名,类型,注释
select b.name,a.name as exname,a.value as exvalue from sys.extended_properties as a inner join sys.tables as b on a.major_id=b.object_id where b.name='area'