SQL如何用语句更改字段的数据类型

SQL如何用语句更改字段的数据类型,第1张

SQL如何用语句更改字段可以用以下语句可以实现:

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、哪类用户可以对数据库库中的数据进行增删改查等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10189013.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存