问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎样用SQL语句修改字段名

发布网友 发布时间:2022-04-23 02:04

我来回答

9个回答

懂视网 时间:2022-04-30 10:24

      今天有个临时任务,修改生产环境的数据库表名和字段名。以前要修改表名字段名都是在开发环境,直接打开

SQL Server找到对应的表或字段重命名就OK啦,可是这是线上数据库,再想直接F2修改是不可能的啦。怎么办?乖

乖写脚本呗。上网了解了一些相关资料,结合我自己操作过程中出现的一些实际问题简单作个总结,再次加深下印

象。

 

     SQL自带了一系列的系统存储过程。其中sp_rename就具有修改表名和列名的功能。对于sp_rename是这样定

义的:更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。

 

基本语法

 

修改表名:EXEC sp_rename ‘[原有表名]’, ‘[新表名]‘;

修改列名:EXEC sp_rename ‘[原有列名]’, ‘[新列名]‘  , ‘COLUMN‘;

 

百度百科链接

http://baike.baidu.com/link?url=62aL-_e-KkdpZjw-dx_uAnOu8xEs9nuLd0TPn-ESZZy_hw2ahMYtjUVZyWToQn6w9r7lB_H_5qLmF4aj645Njq

 

实例讲解

      

      现有数据库testDB,框架体dbo,dbo下有三张表分别为animal(code,name),bird(code,name,animalCode‘),cat(code,name,animalCode‘)

接下来我对这三张表进行如下操作:

 修改表名、修改列名、修改属性类型、添加属性

<span style="font-family:Verdana;font-size:18px;">USE testDB

GO
					
	--将animal表名更改为animalCategory
	EXEC sp_rename '[dbo].[animal]','animalCategory';

	--将bird表中的外键animalCode更改为animalCategoryCode
	EXEC sp_rename '[dbo].[bird].animalCode','animalCategoryCode','COLUMN';

	--将bird表中属性name的类型修改为VARCHAR
	ALTER TABLE [dbo].[bird] ALTER COLUMN name VARCHAR(20)

	--向bird表中添加颜色外键
	ALTER TABLE [dbo].[bird] ADD colorCode INT NULL

GO</span>

 

注意下面一段脚本执行后抛出异常:

    消息 15248,级别 11,状态 1,过程 sp_rename,第 238 行
参数 @objname 不明确或所声明的 @objtype (COLUMN)有误。

 

<span style="font-family:Verdana;font-size:18px;">USE testDB

GO
					
	--将cat表名更改为petCat
	EXEC sp_rename 'cat','petCat';

	--将bird表中的外键animalCode更改为animalCategoryCode
	EXEC sp_rename 'cat.animalCode','animalCategoryCode','COLUMN';

GO</span>


      这样看,也没有什么错呀,修改表名、修改列名。再仔细看你就会发现:执行完第一句SQL后cat表已经被重命

名为petCat,所以再次执行第二句SQL的时候就找不到表cat了。

 

因此如果同时修改表名和字段名要注意修改的先后顺序或者直接记住:先改列后改表

 

另外还有一点需要注意

      我的这一段脚本没有给框架体,即表的限定条件dbo。当不给表限定条件的时候默认为dbo,所以我这里没有报

错。假如现在cat表的限定条件为tmp.cat,那么这段脚本会抛出异常,因为在默认的dbo下找不到cat表。

 

因此在对表进行操作的时候要养成一个好习惯:随时都带有框架体。

 

 

感受

            知识点不多,但也是今天的收获,滴水石川。

       相比较第一点,这一点收获更重要:清楚的思维逻辑和好的编程习惯!

 

 

     在执行的SQL语句中还应用到了另外一个存储过程sys.sp_addextendedproperty,作个简单示例。感兴趣的话

可以上网查查。

 

<span style="font-family:Verdana;font-size:18px;">=============================================================    
-- 作 者:wyq
-- 功 能:学生信息表添加是否是教师子女属性   
-- 日 期:2015-7-28
-- 说 明:
  --学生信息表添加是否是教师子女属性 
=============================================================BEGIN TRAN 

USE BasicService

ALTER TABLE dbo.StudentInfo ADD
IsToTeacher BIT NULL

EXEC sys.sp_addextendedproperty @name = N'MS_Description', @value = N'是否是教师子女',
 @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE',
 @level1name = N'StudentInfo', @level2type = N'COLUMN',
 @level2name = N'IsToTeacher'

--COMMIT TRAN</span>


 关键字:数据库 修改表名 修改列名 修改属性类型 sp_rename

版权声明:本文为博主原创文章,未经博主允许不得转载。

SQL语句修改表名和字段名

标签:

热心网友 时间:2022-04-30 07:32

SQL Server中修改字段名的语句是:sp_rename '表名.旧字段名','新字段名'

字段名name改为Snam的语句如下:sp_rename 'test.name','sname'

拓展资料

一、语法定义

sp_rename指更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。 

二、语法介绍

sp_rename [ @objname = ] 'object_name' ,
[ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ] 

三、参数说明

1、[@objname =] 'object_name'—是用户对象(表、视图、列、存储过程、触发器、默认值、数据库、对象或规则)或数据类型的当前名称。如果要重命名的对象是表中的一列,那么 object_name 必须为 table.column 形式。如果要重命名的是索引,那么 object_name 必须为 table.index 形式。object_name 为 nvarchar(776) 类型,无默认值。 

2、[@newname =] 'new_name'—是指定对象的新名称。new_name 必须是名称的一部分,并且要遵循标识符的规则。newname 是 sysname 类型,无默认值。 

3、[@objtype =] 'object_type' —是要重命名的对象的类型。object_type 为 varchar(13) 类型,其默认值为 NULL,可取下列值。

热心网友 时间:2022-04-30 08:50

SQL Server中修改字段名的语句是:

sp_rename '表名.旧字段名','新字段名'

如,有test表如下,其中包含id和name字段,现在要将name字段改名为snmae。

语句如下:

sp_rename 'test.name','sname'

再看test表结构,修改成功。

注意: 更改对象名的任一部分都可能会破坏脚本和存储过程。

热心网友 时间:2022-04-30 10:25

alter table 表名 alter column name sname
这句没错哦

热心网友 时间:2022-04-30 12:16

alter table 表 drop column [name] alter table 表 add [Sname] 列类型

热心网友 时间:2022-04-30 14:24

alter table [tablename] rename name to Sname

试试

热心网友 时间:2022-04-30 16:49

alart table

热心网友 时间:2022-04-30 19:30

alter table 表名 CHANGE 旧名称 新名称 变量类型,比如

ALTER TABLE `table_name` CHANGE old_column_name new_column_name VARCHAR(20);

alter table 表名 MODIFY 要修改字段的名称 变量类型,比如

ALTER TABLE `table_name` MODIFY column_name INT;

热心网友 时间:2022-04-30 22:28

sp_rename 是系统存储过程
所以 语句应该这么写
exec sp_rename '表名.旧字段名','新字段名'
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
头皮针灸后染发焗油了,起疙瘩疼怎么办 电脑文件夹跑屏幕WIN7系统打开文件夹就跑到屏幕外面了怎么搞 电脑屏幕不小心移动一个文件位置空出一块怎么复原 根据我说的情节找相似的电影 赏金猎手精彩对白 赏金猎手演职员表 提醒新妈妈!产褥期饮食哺乳恢复要两兼顾哦 坐月子期间,能抱宝宝吗 11大女性产后坐月子饮食禁忌 月子期间腰痛怎么回事 春天应注意哪些饮食习惯 如何将sql语句查出来的记录某个字段值变成某个固定值? 春季如何饮食才健康? 玉溪烟怎么扫码领红包 如何用SQL语句将信息插入到指定记录的某一字段 春节就要到了,春季饮食健康小常识有哪些 现在什么烟盒扫码有奖金 如何用Sql语句添加字段? 春季如何进行饮食调养? sql server如何将字段添加到第一列 山西哪些烟可以扫出红包 在SQL表中,怎样把原先的字段改变位置? 苹果xs max指纹解锁用不了了是什么原因? 笋干有哪些家常做法?怎么做好吃? 我司有一款产品要先注塑PMMA加红外色粉,再注塑TPU在外面一层,请问这两种才料能双色成型吗 买双色球有什么好的选号办法吗? 笋干有什么营养?怎么做才好吃? 德国铁拳3式60mm智能火箭筒的简介 笋干怎么做好吃又简单 影响红外线测温仪发射率的主要因素有哪些?? 春天吃什么有益于身体健康? sql2000怎么置1个字段的默认值是另一个字段的值 春季孩子健康饮食,有哪些要注意的地方? 宽窄香烟扫码抽奖领红包怎么是英文? 这个SQL语句怎么写:将一个字段里的值复制添加到另一个字段中 春季幼儿健康饮食,有哪些要注意的问题? 玉溪二维码怎么扫红包 sql数据库怎么把一个字段的值 sql把最后一个字段移到第一个字段的位子 春季宝宝健康饮食,有哪些要注意的地方? 湖南中烟哪些香烟可以扫码领和币? 怎样用SQL语句把列定义在某一指定位置 春季养生小知识简短是什么? sql语句怎么指定添加字段的位置?? 春季养生饮食 春天吃什么最健康 天子烟扫码怎样领红包 sql语句中如何对某个为空的字段赋值 春季幼儿健康饮食,有什么要注意的事项? 这个泰山怎么扫红包呀? sql语言 如何将一个字段的值的一部分赋给另外一个字段