批量修改数据类型
数据库类型
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 |