alter table 表名 alter column 字段名 变更后的字段类型。
注意:
但若是关键字段,带有主键,并且字段类型为用户自定义类型,具有默认值的情况下,用上述语句会出现错误。
例如:
现假设表为TABLE1,关键字段为FIELD1,主键为PK_FIELD1,关键字段的数据类型为用户自定义数据类型 cha_field1,实际为CHAR(10),默认值为dboD_field1现要求将字段类型改为 varchar(20),默认值去除错误提示如下:
服务器: 消息 5074,级别 16,状态 1,行 1
对象 'D_field1' 依赖于 列 'field1'。
服务器: 消息 5074,级别 16,状态 1,行 1
对象 'PK_field1' 依赖于 列 'field1'。
服务器: 消息 4922,级别 16,状态 1,行 1
ALTER TABLE ALTER COLUMN field1 失败,因为有一个或多个对象访问此列。
可以这么写:
select 'alter table ' || table_name || ' modify ( down_flag bigint) ; ' from user_tab_cols where column_name = 'db_code'
union
select 'alter table ' || table_name || ' add db_mark bigint ; ' from user_tab_cols where column_name = 'db_code' ;
把查询结果写到一个脚本文件里面再在oracle里面执行这个脚本文件就可以了。
在数据库中,可以设置不同级别的用户权限来控制用户对数据的访问和 *** 作。通常情况下,只有具有特定权限的用户才能对数据库中的数据进行增删改查 *** 作。以下是一些常见的用户权限及其描述:
系统管理员:系统管理员拥有对整个数据库服务器的完全控制权,可以创建、删除、备份、还原数据库等 *** 作,并可以创建、删除、授权其他用户的权限。
数据库管理员:数据库管理员拥有对特定数据库的完全控制权,可以创建、删除、备份、还原数据库、创建、删除、修改表、视图、存储过程等 *** 作,并可以创建、删除、授权其他用户的权限。
数据库用户:数据库用户可以对数据库中的数据进行查询、更新、插入、删除等 *** 作,但是不能进行数据库的管理 *** 作。
只读用户:只读用户只能对数据库中的数据进行查询 *** 作,不能进行数据的修改、插入、删除等 *** 作。
在把Oracle查询结果转换为SQL Server的时候要特别当心一些不容易注意到的问题。
我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL这两种查询语言都对
ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何
对这些扩展进行转化以用在SQL Server环境下。
列的选择
用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUALDUAL表由
Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2
(1)类型,有一行值X
从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。
Oracle下的DUAL查询如下所示:
SELECT
‘x’ FROM dual
而对等的SQL Server查询则是下面这个样子:
SELECT ‘x’
连接
Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+
Oracle查询如下所示:
Select ‘Name’ || ‘Last Name’
From tableName
对应的SQL Server查询如下所示:
Select ‘Name’ + ‘Last Name’
数字取舍
Oracle数据库内有一个TRUNC函数,该函数返回m位十进制数的n位;如果省略m则n就是0位。m的值可以为负,表示截去小数点左边m位数字。
在SQL Server下可以用Round或者Floor
以下是Oracle查询:
SELECT
TRUNC(1579,1) "Truncate" FROM DUAL;
下面是同类查询的SQL Server版本:
SELECT ROUND(1579, 0) rounded ,
ROUND(1579, 0,1) truncated
SELECT FLOOR(ROUND(1579, 0)),
FLOOR(ROUND(1579, 0,1) )
在把Oracle查询转换为SQL Server的时候要特别当心一些不容易注意到的问题。我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL这两种查询语言都对
ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何
对这些扩展进行转化以用在SQL Server环境下。
列的选择
用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUALDUAL表由
Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2
(1)类型,有一行值X
从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。
Oracle下的DUAL查询如下所示:
SELECT
‘x’ FROM dual
而对等的SQL Server查询则是下面这个样子:
SELECT ‘x’
连接
Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+
Oracle查询如下所示:
Select ‘Name’ || ‘Last Name’
From tableName
对应的SQL Server查询如下所示:
Select ‘Name’ + ‘Last Name’
首先说明一下: 在mysql数据库中可以对表的字段类型进行修改的,这样的好处是正常情况下原来的数据不会丢失的。
它的语法规则是:alter table newexample modify id vaechar(20);
这里详细的讲解一下,这里同样修改表是以alter table 开始然后是表名 接着是要修改的字段名 ,接着是要修改以后的类型。
来个实例讲解一下:alter table newexample modify id vaechar(20);
以上就是关于SQL如何用语句更改字段的数据类型全部的内容,包括:SQL如何用语句更改字段的数据类型、sql语句。查询数据库中的所有表中是否有db_code字段,如果有,则修改down_flag的类型从int改为bigint、哪类用户可以对数据库库中的数据进行增删改查等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)