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 约束 |
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 约束 |
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。 |