sql查询里面xtype='u'是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql查询里面xtype='u'是啥意思?相关的知识,希望对你有一定的参考价值。

我查了一下,u代表是查表,那么其它的一些类型分别代表什么?D,F,IT,P,PK,S,SQ,U,UQ,这些类型分别代表神马?

SQL Server 中系统视图sysobjects中type字段的说明如下:

对象类型:

AF = 聚合函数 (CLR)

C = CHECK 约束

D = DEFAULT(约束或独立)

F = FOREIGN KEY 约束

FN = SQL 标量函数

FS = 程序集 (CLR) 标量函数

FT = 程序集 (CLR) 表值函数

IF = SQL 内联表值函数

IT = 内部表

P = SQL 存储过程

PC = 程序集 (CLR) 存储过程

PG = 计划指南

PK = PRIMARY KEY 约束

R = 规则(旧式,独立)

RF = 复制筛选过程

S = 系统基表

SN = 同义词

SQ = 服务队列

TA = 程序集 (CLR) DML 触发器

TF = SQL 表值函数

TR = SQL DML 触发器

U = 表(用户定义类型)

UQ = UNIQUE 约束

V = 视图

X = 扩展存储过程

关于系统视图sysobjects的详细内容可查看SQL Server教程:

参考技术A 在系统表里 U代表数据表
其他那些应该是存储过程、索引、等等其他
参考技术B xtype='u' 这句完整的应该是这样写
select * from [表] where xtype='u' 完整的是这样写的
xtype='u' 这句话的意思的 在[表]这个表里搜索 xtype 这个字段的 u值
也就是说 xtype字段里的值是u的就会被搜索出来 只能是u 多一个字母都不行

D,F,IT,P,PK,S,SQ,U,UQ 这些都是值 他们都是一个类型就是文本型

文本类型搜索的时候 例如这个 xtype='u' 字符两边要加单引号''
数字类型搜索的时候 xtypes=1 不用加单引号
参考技术C SQL Server xtype的介绍
sysobjects 表在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。 列名 数据类型 描述 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 保留。 可以很方便的用 select * from sysobjects where xtype='TR' and parent_obj=object_id('表名') 查出表的信息 syscolumns表内的xtype 查了一下,这些东西都是存于每一个数据库的syscolumns表里面得,name就是列名,xtype就是数据类型,但是这个xtype是数字的,下面是数字和数据类型对应的关系; xtype=34 'image' xtype= 35 'text' xtype=36 'uniqueidentifier' xtype=48 'tinyint' xtype=52 'smallint' xtype=56 'int' xtype=58 'smalldatetime' xtype=59 'real' xtype=60 'money' xtype=61 'datetime' xtype=62 'float' xtype=98 'sql_variant' xtype=99 'ntext' xtype=104 'bit' xtype=106 'decimal' xtype=108 'numeric' xtype=122 'smallmoney' xtype=127 'bigint' xtype=165 'varbinary' xtype=167 'varchar' xtype=173 'binary' xtype=175 'char' xtype=189 'timestamp' xtype=231 'nvarchar' xtype=239 'nchar' xtype=241 'xml' xtype=231 'sysname'

sql server xtype 对应数据类型名称sql查询

SELECT c.name,c.user_type_id,t.name
FROM sys.[columns] AS c INNER JOIN sys.types AS t ON t.user_type_id=c.user_type_id

 

查询xtype对应的类型名称 做orm用到 记录一下

以上是关于sql查询里面xtype='u'是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

sql fetch提取数据常用方法

sql中如何知道字段在哪个表里?

一条简单的sql查询语句,但是在myeclipse里面老是说top附近有语法错误。。

sqlserver 存储过程 保存在哪张表里如何通过select语句查询哪些存储过程是包含某个关键词

SQL server查看用户表的所有字段信息

sql查看一张表中某个字段是不是存在??怎么写啊