oracle/ms sql 系统表
sql server系统表详细说明
syscharsets 主数据库字符集与排序顺序
sysconfigures主数据库 配置选项
syscurconfigs主数据库当前配置选项
sysdatabases主数据库服务器中的数据库
syslanguages主数据库语言
syslogins主数据库 登陆帐号信息
sysoledbusers主数据库 链接服务器登陆信息
sysprocesses主数据库进程
sysremotelogins主数据库 远程登录帐号
syscolumns每个数据库 列
sysconstrains每个数据库 限制
sysfilegroups每个数据库 文件组
sysfiles每个数据库 文件
sysforeignkeys每个数据库 外部关键字
sysindexs每个数据库 索引
sysmenbers每个数据库角色成员
sysobjects每个数据库所有数据库对象
syspermissions每个数据库 权限
systypes每个数据库 用户定义数据类型
sysusers每个数据库 用户
sysaltfiles 页首
在特殊情况下,包含与数据库中的文件相对应的行。该表存储在 master 数据库中。
列名 | 数据类型 | 描述 |
---|---|---|
fileid | smallint | 每个数据库的唯一文件标识号。 |
groupid | smallint | 文件组标识号。 |
size | int | 文件大小(以 8 KB 页为单位)。 |
maxsize | int | 最大文件大小(以 8 KB 页为单位)。0 值表示不增长,–1 值表示文件应一直增长到磁盘已满。 |
growth | int | 数据库的增长大小。0 值表示不增长。根据状态的值,可以是页数或文件大小的百分比。如果 status 为 0x100000,则 growth 是文件大小的百分比;否则是页数。 |
status | int | 仅限内部使用。 |
perf | int | 保留。 |
dbid | smallint | 该文件所属数据库的数据库标识号。 |
name | nchar(128) | 文件的逻辑名称。 |
filename | nchar(260) | 物理设备的名称,包括文件的完整路径。 |
>syscharsets 页首
每个字符集在表中各占一行,表中还包含定义供 Microsoft? SQL Server? 使用的排序次序。排序次序中的一个在 sysconfigures 中标记为默认排序次序,该次序是实际使用的唯一次序。
列名 | 数据类型 | 描述 |
---|---|---|
type | smallint | 该行表示的实体类型。1001 是字符集;2001 是排序次序。 |
id | tinyint | 字符集或排序次序的唯一 ID。注意排序次序和字符集不能共享相同的 ID 号。保留从 1 到 240 的 ID 范围供 SQL Server 使用。 |
csid | tinyint | 如果该行表示字符集,则不使用该字段。如果该行表示排序次序,则该字段是在其上生成排序次序的字符集 ID。假设具有该 ID 的字符集行存在于该表中。 |
status | smallint | 内部系统状态信息位。 |
name | sysname | 字符集或排序次序的唯一名称。该字段必须只包含字母 A-Z 或 a-z、数字 0 – 9 和下划线 (_)。必须以字母开头。 |
description | nvarchar(255) | 字符集或排序次序功能的可选描述。 |
binarydefinition | varbinary(255) | 仅限内部使用。 |
definition | image | 字符集或排序次序的内部定义。该字段中的数据结构取决于类型。 |
sysconfigures 页首
用户设置的每个配置选项在表中各占一行。 sysconfigures 包含最近启动 Microsoft? SQL Server? 前定义的配置选项,还包含最近启动后设置的所有动态配置选项。该表只位于 master 数据库中。
列名 | 数据类型 | 描述 |
---|---|---|
value | int | 变量的用户可修改值(仅在已执行 RECONFIGURE 后由 SQL Server 使用)。 |
config | smallint | 配置变量号。 |
comment | nvarchar(255) | 对配置选项的解释。 |
status | smallint | 表示选项状态的位图。可能的值包括:
0 = 静态(该设置在服务器重新启动时生效)。 |
syscurconfigs 页首
每个当前配置选项各占一项。另外,该表还包含四个描述配置结构的项。 syscurconfigs 在由用户查询时动态生成。有关更多信息,请参见 sysconfigures。
列名 | 数据类型 | 描述 |
---|---|---|
value | int | 用户可修改的变量值(仅在已执行 RECONFIGURE 的情况下由 Microsoft? SQL Server? 使用)。 |
config | smallint | 配置变量号。 |
comment | nvarchar(255) | 对配置选项的解释。 |
status | smallint | 表示选项状态的位图。可能的值包括:
0 = 静态(该设置在服务器重新启动时生效)。 |
sysdatabases 页首
Microsoft? SQL Server? 上的每个数据库在表中占一行。最初安装 SQL Server 时, sysdatabases 包含 master 、 model 、 msdb 、 mssqlweb 和 tempdb 数据库的项。该表只存储在 master 数据库中。
列名 | 数据类型 | 描述 |
---|---|---|
name | sysname | 数据库的名称。 |
dbid | smallint | 数据库 ID。 |
sid | varbinary(85) | 数据库创建者的系统 ID。 |
mode | smallint | 用于创建数据库时在内部锁定该数据库。 |
status | int | 状态位,其中某些状态位可由用户使用 sp_dboption ( read only 、 dbo use only 、 single user 等)进行设置:
1 = autoclose ;使用 sp_dboption 设置。 可以同时打开多个位。 |
status2 | int | 16384 = ANSI null default ;使用 sp_dboption 设置。 65536 = concat null yields null ,使用 sp_dboption 设置。 131072 = recursive triggers ,使用 sp_dboption 设置。 1048576 = default to local cursor ,使用 sp_dboption 设置。 8388608 = quoted identifier ,使用 sp_dboption 设置。 33554432 = cursor close on commit,使用 sp_dboption 设置。 67108864 = ANSI nulls ,使用 sp_dboption 设置。 268435456 = ANSI warnings ,使用 sp_dboption 设置。 536870912 = full text enabled ,使用 sp_fulltext_database 设置。 |
crdate | datetime | 创建日期。 |
reserved | datetime | 留作以后使用。 |
category | int | 包含用于复制的信息位图:
1 = 已发布。 |
cmptlevel | tinyint | 数据库的兼容级别。有关更多信息,请参见sp_dbcmptlevel。 |
filename | nvarchar(260) | 数据库主文件的操作系统路径和名称。 |
version | smallint | 创建数据库时使用的 SQL Server 代码内部版本号。仅供 SQL Server 工具在内部用于升级处理。 |
syslanguages 页首
出现在 Microsoft? SQL Server? 中的每种语言在表中各占一行。虽然美国英语不在 syslanguages 内,但该表始终可由 SQL Server 使用。该表只存储在 master 数据库中。
列名 | 数据类型 | 描述 |
---|---|---|
langid | smallint | 唯一语言 ID。 |
dateformat | nchar(3) | 日期顺序(如 DMY)。 |
datefirst | tinyint | 一周的第一天:1 表示星期一,2 表示星期二,依此类推,直到 7 表示星期日。 |
upgrade | int | 留作系统使用。 |
name | sysname | 正式语言名称(例如,fran?ais)。 |
alias | sysname | 备用语言名称(如 French)。 |
months | nvarchar(372) | 按从一月到十二月的顺序排列的用逗号分隔的月份全称列表,每个名称最多包含 20 个字符。 |
shortmonths | varchar(132) | 按从一月到十二月的顺序排列的用逗号分隔的缩写月份名称列表,每个名称最多包含 9 个字符。 |
days | nvarchar(217) | 按从一月到十二月的顺序排列的用逗号分隔的天名称列表,每个名称最多包含 30 个字符。 |
lcid | int | 此种语言的 Microsoft Windows NT? 区域设置 ID。 |
mslangid | smallint | SQL Server 消息组 ID。 |
安装了 SQL Server 提供的三十三种语言。下面是语言列表。
用英语表示的名称 | NT LCID | SQL Server 消息组 ID |
---|---|---|
English | 1033 | 1033 |
German | 1031 | 1031 |
French | 1036 | 1036 |
Japanese | 1041 | 1041 |
Danish | 1030 | 1030 |
Spanish | 3082 | 3082 |
Italian | 1040 | 1040 |
Dutch | 1043 | 1043 |
Norwegian | 2068 | 2068 |
Portuguese | 2070 | 2070 |
Finnish | 1035 | 1035 |
Swedish | 1053 | 1053 |
Czech | 1029 | 1029 |
Hungarian | 1038 | 1038 |
Polish | 1045 | 1045 |
Romanian | 1048 | 1048 |
Croatian | 1050 | 1050 |
Slovak | 1051 | 1051 |
Slovene | 1060 | 1060 |
Greek | 1032 | 1032 |
Bulgarian | 1026 | 1026 |
Russian | 1049 | 1049 |
Turkish | 1055 | 1055 |
British English | 2057 | 1033 |
Estonian | 1061 | 1061 |
Latvian | 1062 | 1062 |
Lithuanian | 1063 | 1063 |
Brazilian | 1046 | 1046 |
Traditional Chinese | 1028 | 1028 |
Korean | 1042 | 1042 |
Simplified Chinese | 2052 | 2052 |
Arabic | 1025 | 1025 |
Thai | 1054 | 1054 |
syslogins 页首
每个登录帐户在表中占一行。
列名 | 数据类型 | 描述 |
---|---|---|
sid | varbinary(85) | 安全标识符。 |
status | smallint | 仅限内部使用。 |
createdate | datetime | 添加登录的日期。 |
updatedate | datetime | 更新登录的日期。 |
accdate | datetime | 仅限内部使用。 |
totcpu | int | 仅限内部使用。 |
totio | int | 仅限内部使用。 |
spacelimit | int | 仅限内部使用。 |
timelimit | int | 仅限内部使用。 |
resultlimit | int | 仅限内部使用。 |
name | varchar(30) | 用户的登录 ID。 |
dbname | nvarchar(128) | 建立连接时,用户的默认数据库名。 |
password | nvarchar(128) | 用户的加密密码(可以是 NULL)。 |
language | nvarchar(128) | 用户的默认语言。 |
denylogin | int | 如果登录是 Microsoft? Windows NT? 用户或组且已被拒绝访问,则为 1。 |
hasaccess | int | 如果已授权登录访问服务器,则为 1。 |
isntname | int | 如果登录是 Windows NT 用户或组,则为 1;如果登录是 Microsoft SQL Server? 登录,则为 0。 |
isntgroup | int | 如果登录是 Windows NT 组,则为 1。 |
isntuser | int | 如果登录是 Windows NT 用户,则为 1。 |
sysadmin | int | 如果登录是 sysadmin 服务器角色成员,则为 1。 |
securityadmin | int | 如果登录是 securityadmin 服务器角色成员,则为 1。 |
serveradmin | int | 如果登录是 serveradmin 固定服务器角色成员,则为 1。 |
setupadmin | int | 如果登录是 setupadmin 固定服务器角色成员,则为 1。 |
processadmin | int | 如果登录是 processadmin 固定服务器角色成员,则为 1。 |
diskadmin | int | 如果登录是 diskadmin 固定服务器角色成员,则为 1。 |
dbcreator | int | 如果登录是 dbcreator 固定服务器角色成员,则为 1。 |
loginname | nvarchar(128) | 登录的实际名称,该名称可能不同于 SQL Server 所使用的登录名。 |
sysoledbusers 页首
每个指定的链接服务器的用户和密码映射在表中占一行。该表存储在 master 数据库中。
列名 | 数据类型 | 描述 |
---|---|---|
rmtsrvid | smallint | 服务器的 SID(安全标识号)。 |
rmtloginame | nvarchar(128) | loginsid 映射到的链接 rmtservid 的远程登录名。 |
rmtpassword | nvarchar(128) | 链接 rmtsrvid 内的指定远程登录的加密密码。 |
loginsid | varbinary(85) | 要映射的本地登录 SID。 |
status | smallint | 如果该值为 1,映射应使用用户自己的凭据。 |
changedate | datetime | 上次更改映射信息的日期。 |
sysprocesses 页首
sysprocesses 表中保存关于运行在 Microsoft? SQL Server? 上的进程的信息。这些进程可以是客户端进程或系统进程。 sysprocesses 只存储在 master 数据库中。
列名 | 数据类型 | 描述 |
---|---|---|
spid | smallint | SQL Server 进程 ID。 |
kpid | smallint | Microsoft Windows NT 4.0? 线程 ID。 |
blocked | smallint | 分块进程的进程 ID ( spid )。 |
waittype | binary(2) | 保留。 |
waittime | int | 当前等待时间(以毫秒为单位)。当进程不处于等待时,为 0。 |
lastwaittype | nchar(32) | 表示上次或当前等待类型名称的字符串。 |
waitresource | nchar(32) | 锁资源的文本化表示法。 |
dbid | smallint | 当前正由进程使用的数据库 ID。 |
uid | smallint | 执行命令的用户 ID。 |
cpu | int | 进程的累计 CPU 时间。无论 SET STATISTICS TIME ON 选项是 ON 还是 OFF,都为所有进程更新该条目。 |
physical_io | int | 进程的累计磁盘读取和写入。 |
memusage | int | 当前分配给该进程的过程高速缓存中的页数。一个负数,表示进程正在释放由另一个进程分配的内存。 |
login_time | datetime | 客户端进程登录到服务器的时间。对于系统进程,是存储 SQL Server 启动发生的时间。 |
last_batch | datetime | 客户端进程上次执行远程存储过程调用或 EXECUTE 语句的时间。对于系统进程,是存储 SQL Server 启动发生的时间。 |
ecid | smallint | 用于唯一标识代表单个进程进行操作的子线程的执行上下文 ID。 |
open_tran | smallint | 进程的打开事务数。 |
status | nchar(30) | 进程 ID 状态(如运行、休眠等)。 |
sid | binary(85) | 用户的全局唯一标识符 (GUID)。 |
hostname | nchar(128) | 工作站的名称。 |
program_name | nchar(128) | 应用程序的名称。 |
hostprocess | nchar(8) | 工作站进程 ID 号。 |
cmd | nchar(16) | 当前正在执行的命令。 |
nt_domain | nchar(128) | 客户端的 Windows NT 4.0 域(如果使用 Windows 身份验证)或信任连接的 Windows NT 4.0 域。 |
nt_username | nchar(128) | 进程的 Windows NT 4.0用户名(如果使用 Windows 身份验证)或信任连接的 Windows NT 4.0 用户名。 |
net_address | nchar(12) | 指派给每个用户工作站上的网络接口卡唯一标识符。当用户登录时,该标识符插入 net_address 列。 |
net_library | nchar(12) | 用于存储客户端网络库的列。每个客户端进程都在网络连接上进入。网络连接有一个与这些进程关联的网络库,该网络库使得这些进程可以建立连接。有关更多信息,请参见客户端和服务器 Net-Library。 |
loginame | nchar(128) | 登录名。 |
sysremotelogins 页首
每个允许调用 Microsoft? SQL Server? 上的远程存储过程的远程用户占一行。
列名 | 数据类型 | 描述 |
---|---|---|
remoteserverid | smallint | 远程服务器标识。 |
remoteusername | nvarchar(128) | 远程服务器上的用户登录名。 |
status | smallint | 选项的位图。 |
sid | varbinary(85) | Microsoft Windows NT? 用户安全 ID。 |
changedate | datetime | 添加远程用户的日期和时间。 |
syscolumns 页首
每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。该表位于每个数据库中。
列名 | 数据类型 | 描述 |
---|---|---|
name | sysname | 列名或过程参数的名称。 |
id | int | 该列所属的表对象 ID,或与该参数关联的存储过程 ID。 |
xtype | tinyint | systypes 中的物理存储类型。 |
typestat | tinyint | 仅限内部使用。 |
xusertype | smallint | 扩展的用户定义数据类型 ID。 |
length | smallint | systypes 中的最大物理存储长度。 |
xprec | tinyint | 仅限内部使用。 |
xscale | tinyint | 仅限内部使用。 |
colid | smallint | 列或参数 ID。 |
xoffset | smallint | 仅限内部使用。 |
bitpos | tinyint | 仅限内部使用。 |
reserved | tinyint | 仅限内部使用。 |
colstat | smallint | 仅限内部使用。 |
cdefault | int | 该列的默认值 ID。 |
domain | int | 该列的规则或 CHECK 约束 ID。 |
number | smallint | 过程分组时(0 表示非过程项)的子过程号。 |
colorder | smallint | 仅限内部使用。 |
autoval | varbinary(255) | 仅限内部使用。 |
offset | smallint | 该列所在行的偏移量;如果为负,表示可变长度行。 |
status | tinyint | 用于描述列或参数属性的位图:
0x08 = 列允许空值。 |
type | tinyint | systypes 中的物理存储类型。 |
usertype | smallint | systypes 中的用户定义数据类型 ID。 |
printfmt | varchar(255) | 仅限内部使用。 |
prec | smallint | 该列的精度级别。 |
scale | int | 该列的小数位数。 |
iscomputed | int | 表示是否已计算该列的标志:
0 = 未计算。 |
isoutparam | int | 表示该过程参数是否是输出参数:
1 = 真。 |
isnullable | int | 表示该列是否允许空值:
1 = 真。 |
sysconstraints 页首
包含约束映射,映射到拥有该约束的对象。该系统目录存储在每个数据库中。
列名 | 数据类型 | 描述 |
---|---|---|
constid | int | 约束号。 |
id | int | 拥有该约束的表 ID。 |
colid | smallint | 在其上定义约束的列 ID,如果是表约束则为 0。 |
spare1 | tinyint | 保留。 |
status | int | 位图指示状态。可能的值包括:
1 = PRIMARY KEY 约束。 |
actions | int | 保留。 |
error | int | 保留。 |
sysfilegroups 页首
数据库中的每个文件组在表中占一行。该表存储在每个数据库中。在该表中至少有一项用于主文件组。
列名 | 数据类型 | 描述 |
---|---|---|
groupid | smallint | 每个数据库的唯一组标识号。 |
allocpolicy | smallint | 保留。 |
status | int | 0x8 = READ ONLY 0x10 = DEFAULT |
groupname | sysname | 文件组的名称。 |
sysfiles 页首
数据库中的每个文件在表中占一行。该系统表是虚拟表,不能直接更新或修改。
列名 | 数据类型 | 描述 |
---|---|---|
fileid | smallint | 每个数据库的唯一文件标识号。 |
groupid | smallint | 文件组标识号。 |
size | int | 文件大小(以 8 KB 页为单位)。 |
maxsize | int | 最大文件大小(以 8 KB 页为单位)。0 值表示不增长,–1 值表示文件应一直增长到磁盘已满。 |
growth | int | 数据库的增长大小。0 值表示不增长。根据状态的值,可以是页数或文件大小的百分比。如果 status 包含 0x100000,则 growth 是文件大小的百分比;否则,它是页数。 |
status | int | growth 值(以兆字节 (MB) 或千字节 (KB) 为单位)的状态位。
0x1 = 默认设备。 |
perf | int | 保留。 |
name | nchar(128) | 文件的逻辑名称。 |
filename | nchar(260) | 物理设备的名称,包括文件的完整路径。 |
sysforeignkeys 页首
包含关于表定义中的 FOREIGN KEY 约束的信息。该表存储在每个数据库中。
列名 | 数据类型 | 描述 |
---|---|---|
constid | int | FOREIGN KEY 约束的 ID。 |
fkeyid | int | 具有 FOREIGN KEY 约束的表对象 ID。 |
rkeyid | int | 在 FOREIGN KEY 约束中引用的表对象 ID。 |
fkey | smallint | 正在引用的列 ID。 |
rkey | smallint | 已引用的列 ID。 |
keyno | smallint | 该列在引用列列表中的位置。 |
sysindexes 页首
数据库中的每个索引和表在表中各占一行。该表存储在每个数据库中。
列名 | 数据类型 | 描述 |
---|---|---|
id | int | 表 ID(如果 indid = 0 或 255)。否则为索引所属表的 ID。 |
status | int | 内部系统状态信息。 |
first | binary(6) | 指向第一页或根页的指针。 |
indid | smallint | 索引 ID:
1 = 聚集索引 |
root | binary(6) | 如果 indid >= 1 和 < 255, root 是指向根页的指针。如果 indid = 0 或 indid = 255, root 是指向最后一页的指针。 |
minlen | smallint | 最小行大小。 |
keycnt | smallint | 键的数目。 |
groupid | smallint | 在其上创建对象的文件组 ID。 |
dpages | int | 如果 indid = 0 或 indid = 1, dpages 是已用数据页的计数。如果 indid = 255,其设置为 0。否则是已用索引页的计数。 |
reserved | int | 如果 indid = 0 或 indid = 1, reserved 是分配给所有索引和表数据的页计数。如果 indid = 255,reserved 是分配给 text 或 image 数据的页计数。否则是分配给索引的页计数。 |
used | int | 如果 indid = 0 或 indid = 1, used 是用于所有索引和表数据的总页数。如果 indid = 255, used是用于 text 或 image 数据的页计数。否则是用于索引的页计数。 |
rowcnt | bigint | 基于 indid = 0 和 indid = 1 的数据级行计数。如果 indid = 255, rowcnt 设置为 0。 |
rowmodctr | int | 对自上次更新表的统计后插入、删除或更新行的总数进行计数。 |
xmaxlen | smallint | 最大行大小。 |
maxirow | smallint | 最大非叶索引行大小。 |
OrigFillFactor | tinyint | 创建索引时使用的起始填充因子值。不保留该值;然而,如果需要重新创建索引但记不住当初使用的填充因子,则该值可能很有帮助。 |
reserved1 | tinyint | 保留。 |
reserved2 | int | 保留。 |
FirstIAM | binary(6) | 保留。 |
impid | smallint | 保留。索引实现标志。 |
lockflags | smallint | 用于约束经过考虑的索引锁粒度。例如,对于本质上是只读的查找表,可以将其设置为仅进行表级锁定以使锁定成本减到最小。 |
pgmodctr | int | 保留。 |
keys | varbinary(816) | 组成索引键的列 ID 列表。 |
name | sysname | 表名(如果 indid = 0 或 255)。否则为索引的名称。 |
statblob | image | 统计 BLOB。 |
maxlen | int | 保留。 |
rows | int | 基于 indid = 0 和 indid = 1的数据级行数,该值对于 indid >1 重复。如果 indid = 255, rows设置为 0。提供该列是为了向后兼容。 |
sysmembers 页首
每个数据库角色成员在表中占一行。该表存储在每个数据库中。
列名 | 数据类型 | 描述 |
---|---|---|
memberuid | smallint | 角色成员的用户 ID。 |
groupuid | smallint | 角色的用户 ID。 |
sysobjects 页首
在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。
列名 | 数据类型 | 描述 |
---|---|---|
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 | 保留。 |
syspermissions 页首
包含有关对数据库内的用户、组和角色授予和拒绝的权限的信息。该表存储在每个数据库中。
列名 | 数据类型 | 描述 |
---|---|---|
id | int | 对象权限的对象 ID;0 表示语句权限。 |
grantee | smallint | 受权限影响的用户、组或角色的 ID。 |
grantor | smallint | 被授予或废除权限的用户、组或角色的 ID。 |
actadd | smallint | 仅限内部使用。 |
actmod | smallint | 仅限内部使用。 |
seladd | varbinary(4000) | 仅限内部使用。 |
selmod | varbinary(4000) | 仅限内部使用。 |
updadd | varbinary(4000) | 仅限内部使用。 |
updmod | varbinary(4000) | 仅限内部使用。 |
refadd | varbinary(4000) | 仅限内部使用。 |
refmod | varbinary(4000) | 仅限内部使用。 |
systypes 页首
对于每种系统提供数据类型和用户定义数据类型,均包含一行信息。该表存储在每个数据库中。
这些是系统提供的数据类型及其 ID 号。
列名 | 数据类型 | 描述 |
---|---|---|
name | sysname | 数据类型名称。 |
xtype | tinyint | 物理存储类型。 |
status | tinyint | 仅限内部使用。 |
xusertype | smallint | 扩展用户类型。 |
length | smallint | 数据类型的物理长度。 |
xprec | tinyint | 服务器所使用的内部精度。(不能在查询中使用。) |
xscale | tinyint | 服务器所使用的内部小数位数。(不能在查询中使用。) |
tdefault | int | 对此数据类型进行完整性检查的存储过程的 ID。 |
domain | int | 对此数据类型进行完整性检查的存储过程的 ID。 |
uid | smallint | 数据类型创建者的用户 ID。 |
reserved | smallint | 仅限内部使用。 |
usertype | smallint | 用户类型 ID。 |
variable | bit | 可变长度数据类型为 1;否则为 0。 |
allownulls | bit | 指出此数据类型的默认为空性。如果 CREATE 或 ALTER TABLE 指定了为空性,那么该值将替代此数据类型的默认为空性。 |
type | tinyint | 物理存储数据类型。 |
printfmt | varchar(255) | 保留。 |
prec | smallint | 此数据类型的精度级别。 |
scale | tinyint | 此数据类型的小数位数(根据精度)。 |
sysusers 页首
数据库中每个 Microsoft? Windows 用户、Windows 组、Microsoft SQL Server? 用户或 SQL Server 角色在表中占一行。
列名 | 数据类型 | 描述 |
---|---|---|
uid | smallint | 用户 ID,在此数据库中是唯一的。1 是数据库所有者。 |
status | smallint | 仅限内部使用。 |
Name | sysname | 用户名或组名,在此数据库中是唯一的。 |
sid | varbinary(85) | 此条目的安全性标识符。 |
roles | varbinary(2048) | 仅限内部使用。 |
createdate | datetime | 帐户的添加日期。 |
updatedate | datetime | 帐户的上次修改日期。 |
altuid | smallint | 仅限内部使用。 |
password | varbinary(256) | 仅限内部使用。 |
gid | smallint | 此用户所属的组 ID。如果 uid = gid ,那么此条目就定义一个组。 |
environ | varchar(255) | 保留。 |
hasdbaccess | int | 如果该帐户有数据库访问权限,则为 1。 |
islogin | int | 如果该帐户是有登录帐户的 Windows 组、Windows 用户或 SQL Server 用户,则为 1。 |
isntname | int | 如果该帐户是 Windows 组或 Windows 用户,则为 1。 |
isntgroup | int | 如果该帐户是 Windows 组,则为 1。 |
isntuser | int | 如果该帐户是 Windows 用户,则为 1。 |
issqluser | int | 如果该帐户是 SQL Server 用户,则为 1。 |
isaliased | int | 如果该帐户以另一个用户为别名,则为 1。 |
issqlrole | int | 如果该帐户是 SQL Server 角色,则为 1。 |
isapprole | int | 如果该帐户是应用程序角色,则为 1。 |
查看表的扩展属性:
select object_id from sys.sysobjects where name = table_name;
select * from sys.extended_properties where major_id = object_id;
扩展属性中有一name值是MS_Description,这个值是查看备注信息的。
select * from sys.extended_properties where major_id = object_id and name = 'MS_Description';
至于属性的意思,参考:http://msdn.microsoft.com/zh-cn/library/ms177541(v=sql.105).aspx
class,tinyint, 标识其上存在属性的项类。可以是下列值之一:
0 = 数据库
1 = 对象或列
2 = 参数
3 = 架构
4 = 数据库主体
5 = 程序集
6 = 类型
7 = 索引
10 = XML 架构集合
15 = 消息类型
16 = 服务约定
17 = 服务
18 = 远程服务绑定
19 = 路由
20 = 数据空间(文件组或分区方案)
21 = 分区函数
22 = 数据库文件
27 = 计划指南
class_desc,nvarchar(60),其上存在扩展属性的类的说明。可以是下列值之一:
DATABASE
OBJECT_OR_COLUMN
PARAMETER
SCHEMA
DATABASE_PRINCIPAL
ASSEMBLY
TYPE
INDEX
XML_SCHEMA_COLLECTION
MESSAGE_TYPE
SERVICE_CONTRACT
SERVICE
REMOTE_SERVICE_BINDING
ROUTE
DATASPACE
PARTITION_FUNCTION
DATABASE_FILE
PLAN_GUIDE
major_id,int,其上存在扩展属性的项 ID,根据项类进行解释。对于大多数项,该 ID 适用于类所表示的项。下列是非标准主 ID 的解释:
如果 class 为 0,则 major_id 始终为 0。
如果 class 为 1、2 或 7,则 major_id 为 object_id。
minor_id,int,其上存在扩展属性的项辅助 ID,根据项类进行解释。对于大多数项,ID 为 0;否则,ID 为下列值之一:
如果 class = 1,则 minor_id 在项为列的情况下等于 column_id,在项为对象的情况下等于 0。
如果 class = 2,则 minor_id 为 parameter_id。
如果 class = 7,则 minor _id 为 index_id。
name,sysname,属性名,其 class、major_id 和 minor_id 是唯一的。
value,sql_variant,扩展属性的值。
http://hi.baidu.com/wyg_bd/item/9c153f3d149300697d034b4c
在SqlServer中如何得到列的描述信息_sys.SysColumns和sys.extended_properties关系,sql-promptx下载
Sql开发工具下载地址 sql-promptx
SELECT a.*,b.value AS'描述内容' FROMsys.syscolumns a
LEFTJOINsys.extended_propertiesb ON a.id=b.major_id
WHERE a.id=(SELECTOBJECT_ID('表名称'))
方法二:
select
TableName = tbl.table_schema + '.' + tbl.table_name,
TableDescription = prop.value,
ColumnName = col.column_name,
ColumnDataType = col.data_type,
DescriptionValue=prop.value
FROM information_schema.tables tbl
INNER JOIN information_schema.columns col
ON col.table_name = tbl.table_name
LEFT JOIN sys.extended_properties prop
ON prop.major_id = object_id(tbl.table_schema + '.' + tbl.table_name)
AND prop.minor_id = 0
AND prop.name = 'MS_Description'
WHERE tbl.TABLE_NAME = '表名称'
二、 取得column_id,system_type_id,user_type_id,default_object_id
SELECT c.column_id,c.system_type_id,user_type_id, default_object_id FROM sys.columns AS c INNER JOIN sys.tables AS t ON c.object_id = t.object_id WHERE t.name = 'TabT' AND c.name = 'conlumName of TabT'
三,取得key_constraint_id
SELECT k.object_id FROM sys.key_constraintsAS k INNER JOIN sys.indexes AS i ON k.parent_object_id = i.object_id AND k.unique_index_id = i.index_id INNER JOIN sys.index_columnsAS x ON i.object_id = x.object_id AND i.index_id = x.index_id INNER JOIN sys.columnsAS c ON x.object_id = c.object_id AND x.column_id = c.column_id INNER JOIN sys.tables AS t ON c.object_id = t.object_id AND k.schema_id = t.schema_id WHERE i.is_disabled = 0 AND t.name = 'TabT' AND c.name = 'conlumName of TabT'
四、foreign_key_constraint_id
SELECT f.object_id FROM sys.foreign_keys AS f INNER JOIN sys.foreign_key_columns AS l ON f.object_id = l.constraint_object_id INNER JOIN sys.columns AS c ON f.parent_object_id = c.object_id AND l.parent_object_id = c.object_id AND l.parent_column_id = c.column_id INNER JOIN sys.tables AS t ON c.object_id = t.object_id AND f.schema_id = t.schema_id WHERE f.is_disabled = 0 AND t.name = 'TabT' AND c.name = 'conlumName of TabT'
http://space.itpub.net/16436858/viewspace-624807
select b.[value] from sys.columns a left join sys.extended_properties b on a.object_id=b.major_id
and a.column_id=b.minor_id inner join sysobjects c on a.column_id=c.id
and a.[name]='列名' and c.[name]='表名'
SELECT
表名=case when a.colorder=1 then d.name else '' end,
表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号=a.colorder,
字段名=a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
))) then '√' else '' end,
类型=b.name,
占用字节数=a.length,
长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空=case when a.isnullable=1 then '√'else '' end,
默认值=isnull(e.text,''),
字段说明=isnull(g.[value],'')
FROM syscolumns a
left join systypes b on a.xusertype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e on a.cdefault=e.id
left join sys.extended_properties g on a.id=g.major_id and a.colid=g.minor_id
left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0
--where d.name='orders' --如果只查询指定表,加上此条件
order by a.id,a.colorder
select
INFORMATION_SCHEMA.TABLES.TABLE_CATALOG,
INFORMATION_SCHEMA.TABLES.TABLE_SCHEMA,
INFORMATION_SCHEMA.TABLES.TABLE_NAME
from INFORMATION_SCHEMA.TABLES
order by INFORMATION_schema.TABLES.TABLE_NAME
select
INFORMATION_schema.COLUMNS.TABLE_NAME,
INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME,
INFORMATION_schema.COLUMNS.DATA_TYPE,
INFORMATION_schema.COLUMNS.IS_NULLABLE
from INFORMATION_SCHEMA.COLUMNS
order by INFORMATION_schema.COLUMNS.TABLE_NAME
select
INFORMATION_SCHEMA.COLUMNS.TABLE_NAME
,INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME
,INFORMATION_SCHEMA.COLUMNS.IS_NULLABLE
,INFORMATION_SCHEMA.COLUMNS.DATA_TYPE
,INFORMATION_SCHEMA.TABLE_CONSTRAINTS.CONSTRAINT_TYPE
from INFORMATION_SCHEMA.COLUMNS
left outer join INFORMATION_SCHEMA.KEY_COLUMN_USAGE
on INFORMATION_SCHEMA.KEY_COLUMN_USAGE.COLUMN_NAME = INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME
and INFORMATION_SCHEMA.KEY_COLUMN_USAGE.TABLE_NAME = INFORMATION_SCHEMA.COLUMNS.TABLE_NAME
and INFORMATION_SCHEMA.KEY_COLUMN_USAGE.TABLE_CATALOG = INFORMATION_SCHEMA.COLUMNS.TABLE_CATALOG
and INFORMATION_SCHEMA.KEY_COLUMN_USAGE.ORDINAL_POSITION = INFORMATION_SCHEMA.COLUMNS.ORDINAL_POSITION
left outer join INFORMATION_SCHEMA.TABLE_CONSTRAINTS on
INFORMATION_SCHEMA.TABLE_CONSTRAINTS.TABLE_NAME = INFORMATION_SCHEMA.KEY_COLUMN_USAGE.TABLE_NAME
and INFORMATION_SCHEMA.TABLE_CONSTRAINTS.CONSTRAINT_NAME = INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME
order by INFORMATION_schema.COLUMNS.TABLE_NAME
oracle系统表查询
oracle系统表查询
oracle查询用户下的所有表
select * from all_tab_comments -- 查询所有用户的表,视图等
select * from user_tab_comments -- 查询本用户的表,视图等
select * from all_col_comments --查询所有用户的表的列名和注释.
select * from user_col_comments -- 查询本用户的表的列名和注释
select * from all_tab_columns --查询所有用户的表的列名等信息(详细但是没有备注).
select * from user_tab_columns --查询本用户的表的列名等信息(详细但是没有备注).
--一般使用1:
select t.table_name,t.comments from user_tab_comments t
--一般使用2:
select r1, r2, r3, r5
from (select a.table_name r1, a.column_name r2, a.comments r3
from user_col_comments a),
(select t.table_name r4, t.comments r5 from user_tab_comments t)
where r4 = r1
oracle 系统表 查询
1、用户:
select username from dba_users;
改口令
alter user spgroup identified by spgtest;
2、表空间:
select * from dba_data_files;
select * from dba_tablespaces;//表空间
select tablespace_name,sum(bytes), sum(blocks)
from dba_free_space group by tablespace_name;//空闲表空间
select * from dba_data_files
where tablespace_name='RBS';//表空间对应的数据文件
select * from dba_segments
where tablespace_name='INDEXS';
3、数据库对象:
select * from dba_objects;
CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、
PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。
4、表:
select * from dba_tables;
analyze my_table compute statistics;->dba_tables后6列
select extent_id,bytes from dba_extents
where segment_name='CUSTOMERS' and segment_type='TABLE'
order by extent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滚段的空间分配信息
列信息:
select distinct table_name
from user_tab_columns
where column_name='SO_TYPE_ID';
5、索引:
select * from dba_indexes;//索引,包括主键索引
select * from dba_ind_columns;//索引列
select i.index_name,i.uniqueness,c.column_name
from user_indexes i,user_ind_columns c
where i.index_name=c.index_name
and i.table_name ='ACC_NBR';//联接使用
6、序列:
select * from dba_sequences;
7、视图:
select * from dba_views;
select * from all_views;
text 可用于查询视图生成的脚本
8、聚簇:
select * from dba_clusters;
9、快照:
select * from dba_snapshots;
快照、分区应存在相应的表空间。
10、同义词:
select * from dba_synonyms
where table_owner='SPGROUP';
//if owner is PUBLIC,then the synonyms is a public synonym.
if owner is one of users,then the synonyms is a private synonym.
11、数据库链:
select * from dba_db_links;
在spbase下建数据库链
create database link dbl_spnew
connect to spnew identified by spnew using 'jhhx';
insert into acc_nbr@dbl_spnew
select * from acc_nbr where nxx_nbr='237' and line_nbr='8888';
12、触发器:
select * from dba_trigers;
存储过程,函数从dba_objects查找。
其文本:select text from user_source where name='BOOK_SP_EXAMPLE';
建立出错:select * from user_errors;
oracle总是将存储过程,函数等软件放在SYSTEM表空间。
13、约束:
(1)约束是和表关联的,可在create table或alter table table_name add/drop/modify来建立、修改、删除约束。
可以临时禁止约束,如:
alter table book_example
disable constraint book_example_1;
alter table book_example
enable constraint book_example_1;
(2)主键和外键被称为表约束,而not null和unique之类的约束被称为列约束。通常将主键和外键作为单独的命名约束放在字段列表下面,而列约束可放在列定义的同一行,这样更具有可读性。
(3)列约束可从表定义看出,即describe;表约束即主键和外键,可从dba_constraints和dba_cons_columns 查。
select * from user_constraints
where table_name='BOOK_EXAMPLE';
select owner,CONSTRAINT_NAME,TABLE_NAME
from user_constraints
where constraint_type='R'
order by table_name;
(4)定义约束可以无名(系统自动生成约束名)和自己定义约束名(特别是主键、外键)
如:create table book_example
(identifier number not null);
create table book_example
(identifier number constranit book_example_1 not null);
14、回滚段:
在所有的修改结果存入磁盘前,回滚段中保持恢复该事务所需的全部信息,必须以数据库发生的事务来相应确定其大小(DML语句才可回滚,create,drop,truncate等DDL不能回滚)。
回滚段数量=并发事务/4,但不能超过50;使每个回滚段大小足够处理一个完整的事务;
create rollback segment r05
tablespace rbs;
create rollback segment rbs_cvt
tablespace rbs
storage(initial 1M next 500k);
使回滚段在线
alter rollback segment r04 online;
用dba_extents,v$rollback_segs监测回滚段的大小和动态增长。
回滚段的区间信息
select * from dba_extents
where segment_type='ROLLBACK' and segment_name='RB1';
回滚段的段信息,其中bytes显示目前回滚段的字节数
select * from dba_segments
where segment_type='ROLLBACK' and segment_name='RB1';
为事物指定回归段
set transaction use rollback segment rbs_cvt
针对bytes可以使用回滚段回缩。
alter rollback segment rbs_cvt shrink;
select bytes,extents,max_extents from dba_segments
where segment_type='ROLLBACK' and segment_name='RBS_CVT';
回滚段的当前状态信息:
select * from dba_rollback_segs
where segment_name='RB1';
比多回滚段状态status,回滚段所属实例instance_num
查优化值optimal
select n.name,s.optsize
from v$rollname n,v$rollstat s
where n.usn=s.usn;
回滚段中的数据
set transaction use rollback segment rb1;/*回滚段名*/
select n.name,s.writes
from v$rollname n,v$rollstat s
where n.usn=s.usn;
当事务处理完毕,再次查询$rollstat,比较writes(回滚段条目字节数)差值,可确定事务的大小。
查询回滚段中的事务
column rr heading 'RB Segment' format a18
column us heading 'Username' format a15
column os heading 'Os User' format a10
column te heading 'Terminal' format a10
select r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te
from v$lock l,v$session s,v$rollname r
where l.sid=s.sid(+)
and trunc(l.id1/65536)=R.USN
and l.type='TX'
and l.lmode=6
order by r.name;
15、作业
查询作业信息
select job,broken,next_date,interval,what from user_jobs;
select job,broken,next_date,interval,what from dba_jobs;
查询正在运行的作业
select * from dba_jobs_running;
使用包exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')加入作业。间隔10秒钟
exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')加入作业。间隔11分钟使用包exec dbms_job.remove(21)删除21号作业。
----------------
在Oracle中查看所有的表:
看用户建立的表 :
- select table_name from user_tables; //当前用户的表
- select table_name from all_tables; //所有用户的表
- select table_name from dba_tables; //包括系统表
- select * from user_indexes //可以查询出所有的用户表索引
查所有用户的表在all_tables
主键名称、外键在all_constraints
索引在all_indexes
但主键也会成为索引,所以主键也会在all_indexes里面。
具体需要的字段可以DESC下这几个view,dba登陆的话可以把all换成dba
1、查找表的所有索引(包括索引名,类型,构成列):
- select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表
3、查找表的唯一性约束(包括名称,构成列):
- select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table_name = 要查询的表
4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):
- select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表
查询外键约束的列名:
- select * from user_cons_columns cl where cl.constraint_name = 外键名称
查询引用表的键的列名:
- select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名
查询表的所有列及其属性
- select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表
oracle/ms sql 系统表的更多相关文章
- Oracle\MS SQL Server Update多表关联更新
原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表 ...
- ORACLE主要的系统表和系统视图
ORACLE主要的系统表和系统视图 1.系统表 ORACLE数据库的系统参数都存储在数据库中,可以通过SQLPLUS,以用户SYS进行查询.几个重要的表或者视图如下: v$controlfile:控制 ...
- oracle 常用的系统表查询
(转自:http://blog.csdn.net/marshalchen/article/details/6552103) select * from user_tab_cols where colu ...
- Oracle使用SQL传输表空间
源环境:RHEL 6.4 + Oracle 11.2.0.4 目的环境:RHEL 6.4 + Oracle 11.2.0.4 DG双机 要求:使用SQL传输表空间DBS_D_JINGYU从源环境到目的 ...
- iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)【转】
iBatis的sqlMap配置文件的selectKey元素有个type属性,可以指定pre或者post表示前生成(pre)还是后生成(post). Oracle设置 <!-- Oracle SE ...
- 关于Ms Sql server 表列等是否存在
select object_id('名称') ,object_id('名称','类型') 1. 等价于 select * from sys.objects where name ='名称' selec ...
- ms sql 根据表名查询 表中所有字段的属性值 sql语句
SELECT表名=case when a.colorder=1 then d.name else '' end,--表说明=case when a.colorder=1 then isnull(f.v ...
- PCB MS SQL 通过表名查询各字段信息和vb.net C# module类代码
正式表:各字段内容获取 ) SET @tabname = 'ppeflow' SELECT @tabname AS '表名' ,(CASE ))+ ')' )) ) )) + ')' )) ) )) ...
- MS SQL 2012表分区
最近开发一个手机用户统计平台,因为涉及到数据庞大,不得不以一周为单位对统计报表进行分区,所以记录一下,方便以后查看 第一步创建文件分组 对于文件分组共创建了14个,从 xy_group_2014102 ...
随机推荐
- 20145326 《Java程序设计》第7周学习总结
20145326 <Java程序设计>第7周学习总结 教材学习内容总结 第十二章 一.认识Lambda语法 1.Lambda语法概览 Arrays的sort()方法可以用来排序,只不过你要 ...
- Windows10系统远程桌面连接出现卡顿如何解决
最新的windows10系统下,用户只要开启远程桌面连接,就能够轻松地操控其他电脑.但是,最近部分用户在win10中启用远程连接时,发现电脑窗口变得非常缓慢卡顿,这是怎么回事呢?其实,该问题与系统的设 ...
- JQuery实现锚点平滑滚动
一般使用锚点来跳转到页面指定位置的时候,会生硬地立即跳转到指定位置,但是有些时候我们想要平滑地过渡到指定的位置,那么可以使用JQuery简单的实现这个效果: 比如,这里我们将通过点击<a> ...
- IDEA类和方法注释模板设置
在开发中使用idea的注释总结:由于IDEA自带的注释模板不是太好用,所以整理一下适用于自己的模板: 一.首先我们来设置IDEA中类的模板:(IDEA中在创建类时会自动给添加注释) 1.File--& ...
- G_M_网络流A_网络吞吐量
调了两天的代码,到最后绝望地把I64d改成lld就过了,我真的是醉了. 网络吞吐量 题面:给出一张(n个点,m条边)带权(点权边权均有)无向图,点权为每个点每秒可以接受发送的最大值,边权为花费,保证数 ...
- js二进制转换十进制
var a = 1010;alert(a.toString(2)); //转成二进制 alert(parseInt( "101110100 ",2)) ;//转成十进制 null
- OpenDayLight Helium实验三 OpenDaylight二层转发机制实验 2
鉴于在个人笔记本上虚拟机运行ODL实在太慢,把实验的场景搬到了实验室. 实验上:OpenDayLight Helium实验三 OpenDaylight二层转发机制实验 抓包实验 紧接着,在运行Mini ...
- pycharm同时使用python2.7版本和python3.6版本
最近在看爬虫的专题,很多爬虫的教程是python2的,电脑上装的是3.6版本,而且python不向下兼容,这就很麻烦,最简单的print要加括号啊,等等.于是分享一个在windows环境下pychar ...
- MVC结构之Service概念
所有的逻辑都放到M层,M层会臃肿. 所有的逻辑都放到C层,C层会臃肿. 这个时候需要一个中间层,Service层. Service可以倾向于Model层,比如处理订单查询相关的逻辑. Service可 ...
- Access数据库 更新 "延时" 现象
最近发现 Access数据库执行Update或Delete操作成功后,执行select回来的数据未更改.打开数据库查看时却发现已更改,再次执行select 后却发现正常了. 经调试发现:Access数 ...