批量修改数据类型
数据库类型
SQL Server
实现方式
查询待修改的字段
select sys.objects.name as tableName,syscolumns.name as columnsName
from syscolumns
LEFT OUTER JOIN sys.objects ON
syscolumns.id = sys.objects.object_id
where syscolumns.xtype = '62'
syscolumns.xtype 为字段类型,62为float,如果需要过滤掉特定的表或字段可在sql 后自行添加条件语句。
整理语句
将查询到的数据转换到可执行的sql,可编写存储过程、或者使用代码循环处理,也可直接使用 Excel,整理成自己想要的数据,再拷贝执行
Excel整理
执行SQL
附录1 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 | 保留。 |
附录2 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 = 列允许空值。 | ||
0x10 = 当添加 varchar 或 varbinary 列时,ANSI 填充生效。保留 varchar 列的尾随空格,保留 varbinary 列的尾随零。 | ||
0x40 = 参数为 OUTPUT 参数。 | ||
0x80 = 列为标识列。 | ||
type | tinyint | systypes 中的物理存储类型。 |
usertype | smallint | systypes 中的用户定义数据类型 ID。 |
printfmt | varchar(255) | 仅限内部使用。 |
prec | smallint | 该列的精度级别。 |
scale | int | 该列的小数位数。 |
iscomputed | int | 表示是否已计算该列的标志: |
0 = 未计算。 | ||
1 = 已计算。 | ||
isoutparam | int | 表示该过程参数是否是输出参数: |
1 = 真。 | ||
0 = 假。 | ||
isnullable | int | 表示该列是否允许空值: |
1 = 真。 | ||
0 = 假。 |
附录3 syscolumns.xtype 类型
键值 | 键值 | 键值 | 键值 | 231 nvarchar |
---|---|---|---|---|
34 image | 58 smalldatetime | 99 ntext | 165 varbinary | 231 nvarchar |
35 text | 59 real | 104 bit | 167 varchar | 239 nchar |
36 uniqueidentifier | 60 money | 106 decimal | 173 binary | |
48 tinyint | 61 datetime | 108 numeric | 175 char | |
52 smallint | 62 float | 122 smallmoney | 189 timestamp | |
56 int | 98 sql_variant | 127 bigint | 231 sysname |
网友评论