数据库查询 sysobjects,syscolumns

sysobjects

sysobjects是系统自建的表,里面存储了在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等),各在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。

1.查询数据表中的字段 EShop为数据库名TbAdmin为表名

use EShop
select  name="name"  from  syscolumns
where id=object_id(N'dbo.TbAdmin') 

2.查询数据库中的表

select name from EShop..sysobjects where type='u' 

3. 查询数据库中列名包含user 或者 owner 的所有表名和对应的完整列名

select a.[name] as tablename,b.[name] as columnname from EShop..syscolumns a
inner join EShop..sysobjects b on a.id=b.id
where b.xtype='U'  and (a.[name] like '%user%' OR a.[name] like '%owner%')           

4.SQL中object_id函数的用法

int object_id('objectname');

此方法返回数据库对象标识号。

其中,参数objectname 表示要使用的对象,其数据类型为nchar或char(如果为char,系统将其转换为nchar)

返回类型为int,表示该对象在系统中的编号。

比如:

use wf_timesheet

select object_id('usp_check_excess_hours')

5.SQLServer中sysobjects表和syscolumns各个字段的意义

sysobjects表的各个字段的意义

列名数据类型描述
name sysname 对象名。
Id int 对象标识号。
xtype char(2) 对象类型。可以是下列对象类型中的一种:

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 所有者对象的用户 ID。
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 保留。

 syscolumns表的各个字段的意义

列名

数据类型

说明

name

sysname

列名或过程参数的名称。

id

int

此列所属表的对象 ID,或者与此参数关联的存储过程的 ID。

xtype

tinyint

sys.types 中的物理存储类型。

typestat

tinyint

标识为仅供参考。不提供支持。不保证以后的兼容性。

xusertype

smallint

扩展的用户定义数据类型的 ID。 如果数据类型的数字超过 32,767,则溢出或返回 NULL。

length

smallint

sys .types 中的最大物理存储长度。

xprec

tinyint

标识为仅供参考。不提供支持。不保证以后的兼容性。

xscale

tinyint

标识为仅供参考。不提供支持。不保证以后的兼容性。

colid

smallint

列 ID 或参数 ID。

xoffset

smallint

标识为仅供参考。不提供支持。不保证以后的兼容性。

bitpos

tinyint

标识为仅供参考。不提供支持。不保证以后的兼容性。

reserved

tinyint

标识为仅供参考。不提供支持。不保证以后的兼容性。

colstat

smallint

标识为仅供参考。不提供支持。不保证以后的兼容性。

cdefault

int

此列的默认值的 ID。

domain

int

此列的规则或 CHECK 约束的 ID。

number

smallint

过程分组时的子过程号。

0 = 非过程项

colorder

smallint

标识为仅供参考。不提供支持。不保证以后的兼容性。

autoval

varbinary(8000)

标识为仅供参考。不提供支持。不保证以后的兼容性。

offset

smallint

此列所在行的偏移量。

collationid

int

列的排序规则的 ID。 对于非字符列,此值为 NULL。

status

tinyint

用于说明列或参数的属性的位图:

0x08 = 列允许空值。

0x10 = 添加 varchar 或 varbinary 列时,执行 ANSI 填充。 保留 varchar 列的尾随空格以及 varbinary 列的尾随零。

0x40 = 参数为 OUTPUT 参数。

0x80 = 列为标识列。

类型

tinyint

sys .types 中的物理存储类型。

usertype

smallint

sys.types 中的用户定义数据类型的 ID。 如果数据类型的数字超过 32,767,则溢出或返回 NULL。

printfmt

varchar(255)

标识为仅供参考。不提供支持。不保证以后的兼容性。

prec

smallint

此列的精度级别。

-1 = xml 或大值类型。

scale

int

此列的小数位数。

NULL = 数据类型不是数值。

iscomputed

int

指示列是否为计算列的标志:

0 = 非计算列。

1 = 计算列。

isoutparam

int

指示过程参数是否为输出参数:

1 = True

0 = False

isnullable

int

指示列是否允许空值:

1 = True

0 = False

collation

sysname

列的排序规则的名称。 如果不是基于字符的列,则为 NULL。

原文地址:https://www.cnblogs.com/yyqin/p/4447604.html