如何在SQL中用ALTER TABLE语句修改表中的列名?

如何在SQL中用ALTER TABLE语句修改表中的列名?,第1张

1、alter table student_info add “学生姓名”varchar(10)

2、update student_info set “学生姓名”='姓名'

3、alter table student_info drop column“姓名”。

SQL语言

SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据尺宴以段困盯及握和查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

修改于2012-10-10

得票数 0

在Sql Server上,这将执行以下工作:

select 1 AS "[1]"

复制

当然,模乱这会选择文字整数1。要选择一个名为1的字段,您需要执行以下 *** 作:

select [1] AS "[1]"

复制

我同意评论者的观点,整个想法似乎充满了危险,但如果你正在处理遗留/专有数据,有时你别无选择。

如果您希望自动执行此派渗 *** 作,则可以运行以下代码(或将其转换为存储过程以供重用旦羡档):

BEGIN

DECLARE @Comma AS VARCHAR(2)

DECLARE @Sql as VARCHAR(5000)

DECLARE @Column AS VARCHAR(50)

SET @Sql = 'SELECT '

SET @Comma = ''

DECLARE ColCsr CURSOR FOR

SELECT COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'MyTable'

OPEN ColCsr

FETCH NEXT FROM ColCsr INTO @Column

WHILE @@FETCH_STATUS = 0

BEGIN

SET @Sql = @Sql + @Comma + @Column + ' AS "[' + @Column + ']"'

SET @Comma = ', '

FETCH NEXT FROM ColCsr INTO @Column

END

CLOSE ColCsr

DEALLOCATE ColCsr

SET @Sql = @Sql + ' FROM MyTable'

EXEC (@Sql)

END

复制

原文

英文原版

On Sql Server, this does the job:

select 1 AS "[1]"

复制

This, of course, selects the literal integer 1. To select a field called 1 you'd need to do this:

select [1] AS "[1]"

复制

I agree with the commenters, the whole idea seems fraught with peril but if you're dealing with legacy/proprietary data sometimes you don't have a choice.

If you want to do this automatically, you can run the following code (or make it into a stored procedure for re-use):

BEGIN

DECLARE @Comma AS VARCHAR(2)

DECLARE @Sql as VARCHAR(5000)

DECLARE @Column AS VARCHAR(50)

SET @Sql = 'SELECT '

SET @Comma = ''

DECLARE ColCsr CURSOR FOR

SELECT COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'MyTable'

OPEN ColCsr

FETCH NEXT FROM ColCsr INTO @Column

WHILE @@FETCH_STATUS = 0

BEGIN

SET @Sql = @Sql + @Comma + @Column + ' AS "[' + @Column + ']"'

SET @Comma = ', '

FETCH NEXT FROM ColCsr INTO @Column

END

CLOSE ColCsr

DEALLOCATE ColCsr

SET @Sql = @Sql + ' FROM MyTable'

EXEC (@Sql)

END

代码如下历明燃:

EXEC sp_rename '表名.[原列名]', '新列名', 'column'

sp_rename

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

语法

sp_rename [ @objname = ] 'object_name' ,

[ @newname = ] 'new_name'

[ , [ @objtype = ] 'object_type' ]

参数 www.2cto.com

[@objname =] 'object_name'

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

[@newname =] 'new_name'

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

[@objtype =] 'object_type'

是要重命名的对象的类型。object_type 为 varchar(13) 类型,其默认值为 NULL,可取下肢虚列值。

值 描述

COLUMN 要重命名的列。

DATABASE 用户定义的数据库。要重命名数据库时需用此选项。

INDEX 用户定义的索引。

OBJECT 在 sysobjects 中跟踪的类型的项目。例如,OBJECT 可用来重命名约束(CHECK、FOREIGN KEY、PRIMARY/UNIQUE KEY)、用户表、视图、存储过程、触发器和规则等对象。

USERDATATYPE 通过执行 sp_addtype 而添加的用户定义数据类型。

返回代码值

0(成功)或非零数字(失败)


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

原文地址: http://outofmemory.cn/tougao/12219520.html

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

发表评论

登录后才能评论

评论列表(0条)

保存