澳门金沙vip 4

SqlServer表结构查询

mssql update from 语法 复制代码
代码如下:update a set a.columnname=b.columnname from a,b where b.id=1
1.系统表sysobjects

一、前言

在数据库中制造的种种对象都对应一行。

  近两日项目进级数据迁移,将老版本(sqlserver)的数据迁移到新本子(mysql)数据库,须要收拾八个Excel表格出来,映射七个库之间的报表字段,示比如下:

列名

  澳门金沙vip 1

数据类型

  Mysql数据库查询表构造很有益,用顾客端(SQLyog)能够直接复制出要求的表构造,据悉能够用轻巧的指令查询表布局,然而不会…

说明

  Sqlserver导出表构培育很坑爹了,首先呢顾客端不帮衬,表设计页面虽说能够复制表布局可是不满含字段注释,用脑筋想这种情景应该很布满不也许未有缓和方案的,于是在互连网开采了一段脚本,稍加调节就足以查询出需求的表构造

name

 

sysname

二、脚本及查询示例

对象名

澳门金沙vip 2澳门金沙vip 3

id

 1 SELECT 表名 = CASE WHEN a.colorder = 1 THEN d.name ELSE '' END , 2     字段说明 = ISNULL(g.[value], '') , 3     字段名 = a.name , 4     类型 = CASE WHEN b.name IN ( 'varchar', 'nvarchar' ) 5          THEN b.name + '(' 6            + CAST(COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS VARCHAR(4)) 7            + ')' 8          WHEN b.name = 'decimal' 9          THEN b.name + '('10            + CAST(COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS VARCHAR(4))11            + ','12            + CAST(COLUMNPROPERTY(a.id, a.name, 'Scale') AS VARCHAR(4))13            + ')'14          ELSE b.name15       END16 FROM syscolumns a  -- 列名17   LEFT JOIN systypes b ON a.xusertype = b.xusertype  -- 类型18   INNER JOIN sysobjects d ON a.id = d.id AND d.xtype = 'U' AND d.name <> 'dtproperties'  --筛选用户对象19   --LEFT JOIN syscomments e ON a.cdefault = e.id  --默认值20   LEFT JOIN sys.extended_properties g ON a.id = g.major_id AND a.colid = g.minor_id  --扩展属性(字段说明)21   --LEFT JOIN sys.extended_properties f ON d.id = f.major_id AND f.minor_id = 0    --扩展属性(表说明)22 WHERE d.name = 'Merchant'  --可修改表名23 ORDER BY a.id , a.colorder 

int

View Code

指标标识号

 

xtype

  澳门金沙vip 4

char(2)

 

指标类型。能够是以下目的类型之一:

三、参考链接

AF = 聚合函数 (CLEvoque卡塔尔国

  

C = CHECK 约束

 

D = 默许值或 DEFAULT 限制

四、脚本解读

F = FOREIGN KEY 约束

syscolumns

L = 日志

为各种表和视图中的每列重回一行,并为数据库中的存款和储蓄进度的各个参数再次来到一行。

FN = 标量函数

name

FS = 程序集 (CLLX570卡塔尔国 标量函数

列名或进程参数的名号。

FT = 程序集 (CLEvoqueState of Qatar 表值函数

id

IF = 内联表函数

此列所属表的对象 ID,恐怕与此参数关联的积累进度的 ID

IT = 内部表

xusertype

P = 存储进度

推而广之的客商定义数据类型的 ID

PC = 程序集 (CLQX56卡塔尔国 存款和储蓄进程

colid

PK = PRIMARY KEY 约束

列 ID 或参数 ID

LX570F = 复制筛选存款和储蓄进程

 

S = 系统表

 

SN = 同义词

 

SQ = 服务队列

 

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

 

TF = 表函数

systypes

TR = SQL DML 触发器

对于每一种系统提供数据类型和客商定义数据类型,均含有一行音讯。

TT = 表类型

name

U = 用户表

数据类型名称

UQ = UNIQUE 约束

xusertype

V = 视图

扩张顾客类型

X = 扩展存款和储蓄进度

澳门金沙vip, 

uid

 

smallint

 

目的全数者的构造 ID。

sysobjects

对于从旧版 SQL Server 进级的数据库,结构 ID 等于全数者的客户 ID。

在数据库中开创的每种对象(举个例子节制、暗许值、日志、准则甚至存款和储蓄进度)都对应一行

重在提示:倘使运用以下任何四个 SQL Server DDL 语句,则必需利用
sys.objects 目录视图实际不是 sys.sysobjects。 CREATE | ALTE奥迪Q7 | DROP USER
CREATE | ALTEHaval | DROP ROLE CREATE | ALTE途观 | DROP 应用软件LICATION ROLE CREATE
SCHEMA ALTEEnclave AUTHOEnclaveIZATION ON OBJECT

id

如果顾客数和角色数超过 32,767,则发出溢出或回到 NULL。

 对象标暗号

至于详细音信,请参阅查询 SQL Server 系统目录。

xtype

info

 对象类型。 能够是以下目的类型之一:AF = 聚合函数 (CL昂科拉卡塔尔国C = CHECK 约束D =
暗中认可值或 DEFAULT 约束F = FOREIGN KEY 限制L = 日志FN = 标量函数FS =
程序集 (CLLX570卡塔尔(قطر‎ 标量函数FT = 程序集 (CLCR-VState of Qatar 表值函数IF = 内联表函数IT =
内部表P = 存款和储蓄进程PC = 程序集 (CLWrangler卡塔尔(قطر‎ 存款和储蓄进度PK = P路虎极光IMAKoleosY KEY 节制(type
为 K)奔驰M级F = 复制挑选存款和储蓄过程S = 系统表SN = 同义词SQ = 服务队列TA = 程序集
(CLWrangler卡塔尔 DML 触发器TF = 表函数T哈弗 = SQL DML 触发器TT = 表类型U = 客商表UQ =
UNIQUE 限制(type 为 K)V = 视图X = 扩充存款和储蓄进程

smallint

name

标记为仅供参照他事他说加以考察。不提供支持。不保障以后的宽容性。

指标名(dtproperties自动生成表此处不探究)

status

 

int

 

标志为仅供参谋。不提供支撑。不保障今后的包容性。

 

base_schema_ver

 

int

 

标识为仅供仿照效法。不提供协助。不保障自此的包容性。

 

replinfo

 

int

 

标记为仅供参谋。不提供扶助。不保证今后的包容性。

 

parent_obj

 

int

 

父对象的对象标志号。比如,表 ID。

 

crdate

 

datetime

 

对象的制造日期。

 

ftcatid

 

smallint

 

登记为使用全文索引的具有顾客表的全文目录标记符,对于从未注册的富有顾客表则为
0。

 

schema_ver

 

int

 

在每回改革表的结构时都会扩展的版本号。始终重临 0。

 

stats_schema_ver

 

int

 

标记为仅供参谋。不提供扶植。不有限扶持自此的宽容性。

 

type

 

char(2)

 

目的类型。能够是下列值之一:

 

AF = 聚合函数 (CLSportage卡塔尔(قطر‎

 

C = CHECK 约束

sys.extended_properties

D = 暗许值或 DEFAULT 节制

针对当下数据库中的各种扩大属性再次回到一行

F = FOREIGN KEY 约束

class

FN = 标量函数

标志其上存在属性的项类。 能够是下列值之一:

FS = 程序集 (CLTiggoState of Qatar 标量函数

0 = 数据库

FT = 程序集 (CL大切诺基卡塔尔 表值函数 IF = 内联表函数

1 = 对象或列

IT – 内部表

2 = 参数

K = PRIMARY KEY 或 UNIQUE 约束

3 = 架构

L = 日志

4 = 数据库着重

P = 存款和储蓄进程

5 = 程序集

PC = 程序集 (CLTiggo卡塔尔(قطر‎ 存款和储蓄进度

6 = 类型

R = 规则

7 = 索引

奥迪Q3F = 复制挑选存款和储蓄进程

10 =

S = 系统表

15 = 音信类型

SN = 同义词

16 = 服务预订

SQ = 服务队列

17 = 服务

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

18 = 远程服务绑定

TF = 表函数

19 = 路由

TR = SQL DML 触发器

20 = 数据空间(文件组或分区方案)

TT = 表类型

21 = 分区函数

U = 用户表

22 = 数据库文件

V = 视图

27 = 安插指南

X = 扩大存储进度

major_id

userstat

其上设有扩大属性的项的 ID,依照项类实行解释。 对于比相当多项,该 ID
适用于类所代表的项。 下列是非规范主 ID 的解说:

smallint

如果 class 为 0,则 major_id 始终为 0。

标记为仅供参照他事他说加以调查。不提供支撑。不保障未来的宽容性。

如果 class 为 1、2 或 7,则 major_id 为 object_id。

sysstat

minor_id

smallint

其上存在扩充属性的项的拔刀相助 ID,根据项类进行疏解。 对于绝大大多项,ID 为
0;不然,ID 为下列值之一:

标志为仅供参照他事他说加以考查。不提供援助。不保证未来的包容性。

如果 class = 1,则 minor_id 在项为列的图景下等于
column_id,在项为对象的情状下等于 0。

indexdel

如果 class = 2,则 minor_id 为 parameter_id。

smallint

如果 class = 7,则 minor_id 为 index_id。

标志为仅供参照他事他说加以考查。不提供支撑。不保险现在的宽容性。

 

refdate

 

datetime

 

标记为仅供参谋。不提供支撑。不保障今后的宽容性。

 

version

 

int

 

标记为仅供参考。不提供支撑。不保障今后的包容性。

 

deltrig

 

int

 

标志为仅供参照他事他说加以考察。不提供援助。不保险今后的宽容性。

 

instrig

 

int

 

标志为仅供参考。不提供扶持。不保证今后的宽容性。

 

updtrig

 

int