1. 如何更改数据表主键字段的数据类型
有一需求,就是把表中作为主键字段的数据类型从int 转换为 uniqueidentifier。我们可能会想到直接通过Microsoft SQL Server Management Studio (MSSMS)修改表结构,删除原来的主键,增加一个数据类型为uniqueidentifier的字段作为主键,并对它设置not null default(newid()) 。
对于单独的表,主键没有被其他表作为外键,可以这样修改,但一旦存在外键时,我们就不能这样修改了。至少我们需要通过编写T-SQL语句来实现,基本方法是:
1.删除外键约束
2.修改表字段类型(删除主键约束-->新增uniqueidentifier类型的字段(default(newid())),并设置为主键)
3.在其他表(原主键字段,在其他表作为外键的表)新增uniqueidentifier类型的字段(default(newid()))。
4.更新数据
5.字段重新命名
6.重新创建外键
当然你还要考虑索引是否要重新创建,如果我们要修改一大堆的表,那么需要写一大堆的T-SQl代码。
为了解决这一问题,这里我为此特别写了一个存储过程up_ModifyPrimaryColumn来实现表主键数据类型转换。
http://blog.csdn.net/DVD_01/article/details/8277301?utm_source=jiancool
2. SQL如何用语句更改字段的数据类型
SQL如何用语句更改字段可以用以下语句可以实现:
altertable表名altercolumn字段名变更后的字段类型。
注意:
但若是关键字段,带有主键,并且字段类型为用户自定义类型,具有默认值的情况下,用上述语句会出现错误。
例如:
现假设表为TABLE1,关键字段为FIELD1,主键为PK_FIELD1,关键字段的数据类型为用户自定义数据类型cha_field1,实际为CHAR(10),默认值为dbo.D_field1现要求将字段类型改为varchar(20),默认值去除错误提示如下:
服务器:消息5074,级别16,状态1,行1
对象'D_field1'依赖于列'field1'。
服务器:消息5074,级别16,状态1,行1
对象'PK_field1'依赖于列'field1'。
服务器:消息4922,级别16,状态1,行1
ALTERTABLEALTERCOLUMNfield1失败,因为有一个或多个对象访问此列。
3. 怎么修改字段的类型
alert table 表名<br>alter column 字段名 字段类型<br><br>比如修改 t1表的a字段为文本类型<br>alter table t1<br>alter column a text(50)<br><br>也可选择表,右键单击,选择修改,在设计器里修改
4. 怎么修改数据库字段表的字段类型
mysql> alter table 表名 modify column 字段名 类型;
例如
数据库中address表 city字段是varchar(30)
修改类型可以用(谨慎修改类型,可能会导致原有数据出错)
mysql> alter table address modify column city char(30);
5. 如何修改字段数据类型
8.0版以上的时候:
alter table 你的表名 alter column 列名 type 你的新类型
8.0版以下的时候:
把要修改的表mp下来,在mp文件中直接修改,再重新导入道数据库中。
这个有些危险,如果数据类型不合的话,会出问题。比如由字符类型转数字类型。
6. mysql数据库中sql修改字段类型要怎么做
方法如下:
//修改一个字段的类型
alter table user MODIFY new1 VARCHAR(10);
//修改一个字段的名称,此时一定要重新指定该字段的类型
alter table user CHANGE new1 new4 int。
7. 怎么修改数据库中字段的数据类型
alert table 表名
alter column 字段名 字段类型
比如修改 t1表的a字段为文本类型
alter table t1
alter column a text(50)
也可选择表,右键单击,选择修改,在设计器里修改
8. 数据库中转换数据类型的几种方法
oracle有三种最基本的数据类型,即字符型、数值型、日期型。 (注意需要起别名的地方要起别名)
oracle提供的单行函数中,针对不同的数据类型,提供大量实用的函数,同时提供一系列数据类型转换函数,如下:
sql.append(" select CURVE_NAME,S_YEAR_LIMIT,AVERAGE_VALUE,to_char(d_date,'yyyy-MM-dd') d_date from t_treasury_yield_curve t where d_date = to_date ('"+d_date+"','yyyy-MM-dd')");
24 小时的形式显示出来要用 HH24select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from al;
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from al;to_date() function。
1、日期格式参数 含义说明
D 一周中的星期几。
DAY 天的名字,使用空格填充到 9 个字符。DD 月中的第几天,DDD 年中的第几天。
DY 天的简写名,IW ISO 标准的年中的第几周,IYYY ISO 标准的四位年份。YYYY 四位年份,
YYY,YY,Y 年份的最后三位,两位,一位。
select sysdate,sysdate - interval '7' month from al。
当前时间减去 7 年的时间。
select sysdate,sysdate - interval '7' year from al。
时间间隔乘以一个数字。
select sysdate,sysdate - 8 *interval '2' hour from al
2、日期到字符操作
select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from al,select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from al,select sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss') from al。
select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from al。
3、字符到日期操作
select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from al。
具体用法和上面的 to_char 差不多。
4、TO_NUMBER
使用TO_NUMBER函数将字符转换为数字
TO_NUMBER(char[, '格式'])
数字格式格式:
9 代表一个数字 。
0 强制显示0 。
$ 放置一个$符 。
L 放置一个浮动本地货币符 。
. 显示小数点 。
, 显示千位指示符。
(8)更改字段数据类型有哪些方法扩展阅读:
在使用数据类型转换之前,同样的 SQL 在有的服务器不报错,主要是数据库的版本不同,当然该过配置的不算。
常见的两种类型转换错误如下:
ERROR: operator does not exist: integer = character varying。
ERROR: operator does not exist: character varying = integer。
字符串转数字,数字转字符串。这一点支持的不如 MySQL 好,当然 PostgreSQL 在新版本中也对这个问题做了改进!
第一种转换方式:使用 CAST 函数。
SELECT * FROM xttblog WHERE id = CAST(888 AS VARCHAR);
SELECT * FROM xttblog WHERE id = CAST('888' AS integer)。
第二种转换方式:使用“::”操作字段。
格式,字段 :: 要转换为的数据类型。
SELECT * FROM xttblog WHERE id = 888 :: VARCHAR;
SELECT * FROM xttblog WHERE id = '888' :: integer。
数据类型转换,虽然看起来很痛苦,但是如果用户的类型用的不对,查询效率会下降。所以,在设计的时候,字段的类型,一定要设计的合理,尤其是在关联表的时候。
9. oracle数据库如何修改字段的数据类型
1、首先打开plsql,连接上oracle数据库,假设有一张数据库表叫做 tblTest,通过sql查询也可以看出,这里面是有测试数据的。