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