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