如何修改数据表的表名、字段名、字段属性等信息

如何修改数据表的表名、字段名、字段属性等信息,第1张

在ACCESS里,备注类型用Memo表示,所以改变字段的数据类型为备注的SQL为:

ALTER TABLE user ALTER COLUMN userinfo Memo

对了,如果user表有外键,而且你要修改的字段就是外键的话,你就不能修改啦!

下面给出修改为其它类型的SQL(表为tb,字段为aa):

ALTER TABLE tb ALTER COLUMN aa Byte 数字[字节]

ALTER TABLE tb ALTER COLUMN aa Long 数字[长整型]

ALTER TABLE tb ALTER COLUMN aa Short 数字[整型]

ALTER TABLE tb ALTER COLUMN aa Single 数字[单精度

ALTER TABLE tb ALTER COLUMN aa Double 数字[双精度]

ALTER TABLE tb ALTER COLUMN aa Currency 货币

ALTER TABLE tb ALTER COLUMN aa Char 文本

ALTER TABLE tb ALTER COLUMN aa Text(n) 文本,其中n表示字段大小

ALTER TABLE tb ALTER COLUMN aa Binary 二进制

ALTER TABLE tb ALTER COLUMN aa Counter 自动编号

ALTER TABLE tb ALTER COLUMN aa Memo 备注

ALTER TABLE tb ALTER COLUMN aa Time 日期/时间

第1招(rename)、很简单,在ssms(sql server management studio)左侧树上,找到表,右键重命名(或者定位(鼠标或者上下左右键)到这张表按F2),输入表的新名字,回车。

还是截个图吧。

2

第2招(insert into select from )、通过写程序,创建一张新表,表名为你的表新名,比如这位小兄弟想把Arizhi命名为Arizhi20151030,则建一张表,表名为这个,字段描述等均与第一张表相同,为了达到这个效果,在表Arizhi上右键-->编写表脚本为-->Create到-->新查询编辑器窗口

3

第二招续1,修改脚本中的名字为新表的名字,运行之(鼠标点红色叹号按钮,或者直接按F5快捷键)

4

第二招续2,将原表中的数据插入新表中,然后删除原表中的数据,就可以了

INSERT INTO Arizhi20151030 SELECT FROM dboArizhi;TRUNCATE TABLE dboArizhi;

5

第3招(Select into from ),简化第二招的 *** 作,但是不会有主键什么的带进去,适合这种临时的日志表,没有主键的情况。

SELECT INTO Arizhibakat20151029 FROM dboArizhi;

truncate table Arizhi;

6

第四招(sp_rename),终极大招,适合在程序中调用(个人觉得程序员要掌握的方法,就是要熟悉各种数据库的系统函数和方法,并加以权衡运用到程序开发中,才是一个想偷懒,能够偷懒,老板还喜欢你偷懒的程序员)。

EXEC sp_rename 'Arizhi','Arizhi201510301106';

END

注意事项

rename方法适合于小白

insert into select from方法适合于各种数据库,不只是mssql server,但是在这个场景下不是最优

Select into from 丢掉了主键信息,不是最优,但是适合于备份临时的数据

sp_rename这个方法建议各位sql server dba和程序员们广泛使用

JET SQL 可以更改字段类型,无法更改字段名的,除非你连续使用几个JET SQL 先删除字段然后再插入字段,然后用UPDATE查询将保存再临时表的原字段数据恢复过来。

或者,直接用 ADOX 更改 TABLE 的 Columns(字段名) 对象的 NAME 属性即可。

Function Test()

ChangeTableFieldName_ADO "表1", "aa", "pic1"

End Function

Function ChangeTableFieldName_ADO(MyTableName As String, MyFieldName As String, strNewName As String)

'3个参数:

'MyTableName 字符串,表名

'MyFieldName 字符串,原来的字段名

'strNewName 字符串,新的字段名

'记得先引用 ADOX

Dim MyDB As New ADOXCatalog

Dim MyTable As ADOXTable

MyDBActiveConnection = CurrentProjectConnection

Set MyTable = MyDBTables(MyTableName)

MyTableColumns(MyFieldName)Name = strNewName

End Function

被取消的命令MySQL 之前提供了一个 rename database db_old to db_new 的命令来直接对数据库改名,可能由于实现的功能不完备(比如,这条命令可能是一个超大的事务,或者是由于之前的表很多还是 MyISAM 等),后来的版本直接取消了这条命令。更改数据库名大致上有以下几种方案:

一、mysqldump 导入导出要说最简单的方法,就是直接用 mysqldump 工具,在旧库导出再往新库导入(最原始、最慢、最容易想到)的方法:旧库 yttdb_old 导出(包含的对象:表、视图、触发器、事件、存储过程、存储函数)

二、改整库的表名利用 MySQL 更改表名的方法来批量把旧库的所有表依次遍历,改名为新库的表。这种方法比第一种要快很多倍,但是没有第一步 *** 作起来那么顺滑,不能一步到位。比如,要把数据库 yttdb_old 改名为 yttdb_new,如果数据库 yttdb_old 里只有磁盘表,那很简单,直接改名即可。或者写个脚本来批量改,非常简单。但是一般旧库里不只有磁盘表,还包含其他各种对象。这时候可以先考虑把旧库的各种对象导出来,完了在逐一改完表名后导进去。

三、历史方案其实在 MySQL 早期还有一种方法。假设 MySQL 部署好了后,所有的 binlog 都有备份,并且二进制日志格式还是 statement 的话,那就可以简单搭建一台从机,让它慢慢追主机到新的库名,等确切要更改旧库的时候,再直接晋升从机为主机即可。这里只需要从机配置一个参数来把旧库指向为新库:replicate-rewrite-db=yttdb_old->yttdb_new不过这种局限性很大,不具备标准化,不推荐。

总结其实针对 MySQL 本身改库名,大致就这么几种方法:

如果数据量小,推荐第一种;

数据量大,则推荐第二种;

数据量巨大,那就非 MySQL 本身能解决的了。

可通过部署第三方 ETL 工具,通过解析 MySQL 二进制日志或其他的方式来把旧库数据直接读取到新库达到改名的目的等等。

JET SQL 可以更改字段类型,无法更改字段名的,除非你连续使用几个JET SQL 先删除字段然后再插入字段,然后用UPDATE查询将保存再临时表的原字段数据恢复过来。

或者,直接用 ADOX 更改 TABLE 的 Columns(字段名) 对象的 NAME 属性即可。

Function Test()

ChangeTableFieldName_ADO "表1", "aa", "pic1"

End Function

Function ChangeTableFieldName_ADO(MyTableName As String, MyFieldName As String, strNewName As String)

'3个参数:

'MyTableName 字符串,表名

'MyFieldName 字符串,原来的字段名

'strNewName 字符串,新的字段名

'记得先引用 ADOX

Dim MyDB As New ADOXCatalog

Dim MyTable As ADOXTable

MyDBActiveConnection = CurrentProjectConnection

Set MyTable = MyDBTables(MyTableName)

MyTableColumns(MyFieldName)Name = strNewName

End Function

LZ你好,如果是用ADONET去 *** 作数据库的话,以windows form为例, 首先要用到Timer控件,并设置时间属性,然后用触发他的Timer_Timer()事件,然后执行你修改表名和创建一张新表的SQL语句!

1

spfile是参数文件。这个就相当于你数据库的一些配置的信息。scope=spfile,表明在数据库下次启动的

时候生效。如果不加,表示立刻生效,下次启动依然有效。但有些参数是不能在数据库运行的状态下修改的。

2selectfrom是标准的sql语句。也就是说,你select后面必须是表的列,from后面必须是表的名称(当然,视图函数什么的就不多讲了,讲了你听着也乱)。

system

不是表的名称,所以你的语句是无效的。

alter

system

set

open_links=12,这句话你要按照英语翻译过来。意思是将系统的open_links这个参数,设置成12!而不是将system这个表修改掉。你看这句话里根本没有table这个词,当然也就不能select。

你要用show

parameter

open就可以找到这个参数了。

你最好先去看看oracle基础知识的书

以上就是关于如何修改数据表的表名、字段名、字段属性等信息全部的内容,包括:如何修改数据表的表名、字段名、字段属性等信息、怎样重命名sql server中的表、怎样使用SQL语句修改Access里的表名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/10135159.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存