首页 > 数据库 >sql server 数据库系统表及表结构查询

sql server 数据库系统表及表结构查询

时间:2022-11-14 21:01:50浏览次数:64  
标签:name int 表及表 sys sql ic server id SELECT

sysobjects 表结构:

列名 数据类型 描述
name sysname 对象名,常用列
id int 对象标识号
xtype char(2)

对象类型,常用列。

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 = 扩展存储过程

uid smallint 所有者用户对象编号
info smallint 保留。仅限内部使用
status int 保留。仅限内部使用
base_schema_ ver int 保留。仅限内部使用
 replinfo  int 保留。供复制使用
 parent_obj  int  父对象的对象标识号(例如,对于触发器或约束,该标识号为表 ID)。
 crdate  datetime  对象的创建日期。
 ftcatid  smallint  为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0
 schema_ver  int  版本号,该版本号在每次表的架构更改时都增加。
 stats_schema_ ver  int  保留。仅限内部使用。
type char(2) 

 对象类型。可以是下列值之一: 
C = CHECK 约束  

D = 默认值或 DEFAULT 约束

F = FOREIGN KEY 约束 
FN = 标量函数

IF = 内嵌表函数  

K = PRIMARY KEY 或 UNIQUE 约束 
L = 日志

P = 存储过程

R = 规则  

RF = 复制筛选存储过程 
S = 系统表  

TF = 表函数

TR = 触发器

U = 用户表

V = 视图

X = 扩展存储过程

 userstat smallint   保留。
 sysstat smallint   内部状态信息
 indexdel  smallint  保留
 refdate  datetime  留用
 version int   保留
deltrig  int   保留
 instrig int   保留
 updtrig int   保留
 seltrig int   保留
 category  int  用于发布、约束和标识
 cache smallint   保留
     

1.所有数据库名称
  

 
  1.    
  2.    
  3.   select name from sys.databases where name not in ('master','model','msdb','tempdb')
  4.    
  5.    
 
 

2. 查看某数据库的所有表

 
  1.   select objects.name                                    
  2.   from [CRM].sys.objects 
  3.   inner join [CRM].dbo.sysindexes on objects.object_id=sysindexes.id
  4.   and sysindexes.indid<=1
  5.   where type='U'
  6.   order by objects.name
 
 

3.查看表结构

 
  1.   SELECT
  2.   表名 = case when a.colorder=1 then d.name else '' end,
  3.   表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end,
  4.   字段序号 = a.colorder,
  5.   字段名 = a.name,
  6.   标识 = case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
  7.   主键 = case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
  8.   SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then '√' else '' end,
  9.   类型 = b.name,
  10.   占用字节数 = a.length,
  11.   长度 = COLUMNPROPERTY(a.id,a.name,'PRECISION'),
  12.   小数位数 = isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
  13.   允许空 = case when a.isnullable=1 then '√'else '' end,
  14.   默认值 = isnull(e.text,''),
  15.   字段说明 = isnull(g.[value],'')
  16.   FROM syscolumns a left join systypes b
  17.   on a.xusertype=b.xusertype
  18.   inner join sysobjects d
  19.   on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
  20.   left join syscomments e
  21.   on a.cdefault=e.id
  22.   left join sys.extended_properties g
  23.   on a.id=g.major_id and a.colid=g.minor_id
  24.   left join sys.extended_properties f
  25.   on d.id=f.major_id and f.minor_id=0
  26.   --where d.name= 'Activities' --如果只查询指定表,加上此条件
  27.   order by a.id,a.colorder
 
 

4.各字段元数据

 
  1.    
  2.   select * from sys.dm_exec_describe_first_result_set (N'SELECT * FROM dbo.TabName', NULL, 0)
 
 

5.索引 主键/类型/列 情况  

 
  1.   ;with tb as(
  2.   SELECT tbl.name AS TableName,i.name AS IndexName,clmns.name AS ColumName,i.is_primary_key AS isPrimaryKey,i.type_desc
  3.   FROM sys.tables AS tbl
  4.   INNER JOIN sys.indexes AS i ON (i.index_id > 0 and i.is_hypothetical = 0) AND (i.object_id=tbl.object_id)
  5.   INNER JOIN sys.index_columns AS ic ON (ic.column_id > 0
  6.   AND (ic.key_ordinal > 0 or ic.partition_ordinal = 0 or ic.is_included_column != 0))
  7.   AND (ic.index_id=CAST(i.index_id AS int) AND ic.object_id=i.object_id)
  8.   INNER JOIN sys.columns AS clmns ON clmns.object_id = ic.object_id and clmns.column_id = ic.column_id
  9.   WHERE SCHEMA_NAME(tbl.schema_id) = N'dbo'
  10.   )
  11.   SELECT DISTINCT TableName,IndexName,isPrimaryKey,type_desc
  12.   ,STUFF((SELECT ','+ColumName FROM tb B WHERE A.TableName=B.TableName AND A.IndexName=B.IndexName FOR XML PATH('')),1,1,'') AS ColumName
  13.   FROM tb A ORDER BY TableName,IndexName,isPrimaryKey,type_desc

标签:name,int,表及表,sys,sql,ic,server,id,SELECT
From: https://www.cnblogs.com/yclizq/p/16890374.html

相关文章

  • sqlserver xml 操作:1、使用for xml
    sqlserverxml操作:1、使用forxml一个是侧重介绍forxml模式的,一个是侧重语法及细节参数的forxml(SqlServer)forxml子句的基本语法说实话,老顾觉得其......
  • sqlserver xml 操作:2、对确定结构的xml进行操作
    sqlserverxml操作:2、对确定结构的xml进行操作我们使用的xml有着明确的定义结构,该啥节点,该啥属性,该啥层级,基本在设计之初就已经确定了,很少有确定了结构的xml格式再......
  • sqlserver xml 操作:3、对不确定结构、属性的xml进行处理
    sqlserverxml操作:3、对不确定结构、属性的xml进行处理在平时使用过程中,xml的结构一般都是已经确定了的,所以我们读取并不是很麻烦的事,但如果一旦结构或数据不确定,......
  • sqlserver FOR XML查询参数path的实例
     SQLSERVER中XML查询:FORXML指定PATH前言在SQLSERVER中,XML查询可以指定RAW,AUTO,EXPLICIT,PATH。本文用一些实例介绍SQLSERVER中指定PATH的XML查询。PA......
  • SQL中的OpenXML使用案例
    DECLARE@idocintDECLARE@docvarchar(1000)SET@doc='<ROOT><CustomerCustomerID="VINET"ContactName="PaulHenriot"><OrderOrderID="10248"Customer......
  • SQL 存储过程 解析XML
    第一种说明:我看过这样一篇文章,如下 在SQL Server2005中,微软延续了 2000中一个特性(即支持XML类型的数据),并加强了对XML 数据列、XML变量以及XML索引的支持。 ......
  • SQL openxml用法及案例
    SQLopenxml用法 OPENXML通过XML文档提供行集视图。由于OPENXML是行集提供程序,因此可在会出现行集提供程序(如表、视图或OPENROWSET函数)的Tra......
  • 把XML数据插入到SQL Server数据库的表中
     把XML数据插入到SQLServer数据库的表中我们可以通过使用系统存储过程sp_xml_preparedocument的OPENXML函数把XML文档中的数据插入数据库中。其中,系统存储过程sp_......
  • Asterisk realtime 之SIP用户动态写入mysql 数据库(2)
    提供通信服务器和客户端解决方案,包括视频电话,调度系统,会议系统等VOIP行业资讯和技术趋势请参考:www.voip123.cn接上一篇文章,SIP用户写入mysql数据库,asterisk自动查找数......
  • Ubuntu20.04离线安装mysql8.0
    参考网址#1.官网下载对应的文件并解压tar-xfmysql-server_8.0.31-1ubuntu20.04_amd64.deb-bundle.tar#2.下载所需的依赖wgethttp://archive.ubuntu.com/ubuntu/pool......