SQLServer Alter 修改表的列名的解决
解决:
在SQLServer中修改表的列名,可以调用存储过程sp_rename。
[sql]
use Test;--使用数据库
sp_rename 'd_s_t.avg_grade','avg_g','column';
--d_s_t是表名,avg_grade是原来的列名,avg_g是新的列名
--也可以这样执行: www.2cto.com
-- exec sp_rename 'd_s_t.avg_grade','avg_g','column';
注意:
1. avg_g前面不要有表名,否则,更改后的列名为d_s_t. avg_g。
2. 更改成功后会有这样一个警告:“注意: 更改对象名的任一部分都可能会破坏脚本和存储过程”。不用理会,这是正常的。
附上参考资料:
sp_rename
更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。
语法
sp_rename [ @objname = ] 'object_name' ,
[ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
参数
[@objname =] 'object_name'
是用户对象(表、视图、列、存储过程、触发器、默认值、数据库、对象或规则)或数据类型的当前名称。如果要重命名的对象是表中的一列,那么 object_name必须为 table.column 形式。如果要重命名的是索引,那么 object_name必须为 table.index 形式。object_name为 nvarchar(776) 类型,无默认值。
[@newname =] 'new_name'
是指定对象的新名称。new_name必须是名称的一部分,并且要遵循标识符的规则。newname 是 sysname类型,无默认值。 www.2cto.com
[@objtype =] 'object_type'
是要重命名的对象的类型。object_type为 varchar(13) 类型,其默认值为 NULL,可取下列值。
值描述
COLUMN 要重命名的列。
DATABASE 用户定义的数据库。要重命名数据库时需用此选项。
INDEX 用户定义的索引。
OBJECT 在 sysobjects中跟踪的类型的项目。例如,OBJECT 可用来重命名约束(CHECK、FOREIGN KEY、PRIMARY/UNIQUE KEY)、用户表、视图、存储过程、触发器和规则等对象。
USERDATATYPE 通过执行 sp_addtype 而添加的用户定义数据类型。
返回代码值
0(成功)或非零数字(失败)
注释
只能更改当前数据库中的对象名称或数据类型名称。大多数系统数据类型和系统对象的名称不能更改。
重命名视图时,sysobjects表中有关该视图的信息将得到更新。重命名存储过程时,sysobjects 表中有关该过程的信息将得到更新。
每当重命名 PRIMARY KEY或 UNIQUE 约束时,sp_rename都会自动为相关联的索引重命名。如果重命名的索引与 PRIMARY KEY 约束相关联,那么 sp_rename 也会自动重命名主键。
重要重命名存储过程和视图后,请清空过程高速缓存以确保所有相关的存储过程和视图都重新编译。
由于存储过程和视图都不存储数据,所以这两种对象均可快速删除和重建。重命名文本对象时,要获得最佳结果,应删除并使用其新名称重新创建对象。
权限
sysadmin 固定服务器角色成员、db_owner 和 db_ddladmin固定数据库角色成员或对象所有者可以执行 sp_rename。只有 sysadmin和 dbcreator 固定服务器角色成员才能将"database"作为 object_type来执行 sp_rename。 www.2cto.com
示例
A. 重命名表
下例将表 customers 重命名为 custs。
EXEC sp_rename 'customers', 'custs'
B. 重命名列
下例将表 customers 中的列 contact title 重命名为 title。
EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'
SQLServer Alter 修改表的列名的解决的更多相关文章
- alter修改表
alter修改表的基础语句,语法如下: ALTER TABLE table_name ADD column_name|MODIFY column_name| DROP COLUMN column_na ...
- SQL Server 修改表结构被阻止 解决办法
在我们的程序开发中,有时候会由于需求的变化而要修改数据库中的表结构.可能是增减列,也可能是修改数据类型,或者修改列名等等.但修改表结构是个危险操作,默认情况下,当你修改表结构时,会弹出如下提示框 上图 ...
- MySQL使用alter修改表的结构
SQL语句 DLL 数据定义语言 create,drop DML 数据操纵语言 insert,delete,select,upda ...
- SqlServer 2015修改表时出现“save changes is not permitted…”的解决方法
使用SqlServer 2015的过程中,会出现如下情况: 在修改完表字段名或是类型后点击保存时会弹出一个对话框,且无法保存已做的修改.对话框内容大致如下: Saving changes is not ...
- SQLServer: 无法修改表
工具—选项—Designers—表设计器和数据库设计器—阻止保存要求重新创建表的更改前的勾去掉.
- sqlserver 批量修改表前缀
先把第一句话放到sqlserver查询器中执行一下.然后把查询结果复制出来,进行编辑...一看你就懂了..简单的sql语句拼装 select ' exec sp_rename "' + na ...
- SqlServer查询某个表的列名称、说明、备注、类型等
SELECT 表名 = case when a.colorder=1 then d.name else '' end, 表说明 = case when a.colorder=1 then isnull ...
- 通过sql语句修改表的结构
1.修改表的列名 oracle: ALTER TABLE 表名 RENAME COLUMN 列名 TO 新列名sqlserver:exec sp_rename '[表名].[列名]','[表名].[新 ...
- SqlSever查询某个表的列名称、说明、备注、注释,类型等
这周整理了数据库文档,发现用导出脚本来整理表的信息注释查看不方便,因此我就想能不能SQL语句查询表的注释或者表的字段.我就我问朋友是不是可以,他给我点指导,然后自己也在网上百度,来实现自己的想法,我把 ...
随机推荐
- intent的startActivityForResult()方法
/******************************************************************************************** * au ...
- 【深入了解cocos2d-x 3.x】定时器(scheduler)的使用和原理探究(3)
上篇文章分析到了定时器的定义.这篇的重点就是定时器是怎样执行起来的. 1.从main中寻找定时器的回调 讲定时器的执行,就不得不触及到cocos2dx的main函数了,由于定时器是主线程上执行的.并非 ...
- 【基础练习】【vector】codevs3393 序列倒置
版权信息 转载请注明出处 [ametake版权全部]http://blog.csdn.net/ametake欢迎来看 题目非常easy,本质还是练习一下vector 题目描写叙述 Descriptio ...
- android listview综合使用演示样例_结合数据库操作和listitem单击长按等事件处理
本演示样例说明: 1.自己定义listview条目样式,自己定义listview显示列数的多少,灵活与数据库中字段绑定. 2.实现对DB的增删改查,而且操作后listview自己主动刷新. 3.响应用 ...
- 开发中可能会用到的几个 jQuery 小提示和技巧 (转)
转自:http://www.cnblogs.com/lhb25/p/useful-jquery-tips-and-tricks.html 今天,我们将分享一些很有用的技巧和窍门给 jQuery 开发人 ...
- Android(java)学习笔记249:ContentProvider使用之获得系统联系人信息01
1.系统联系人的数据库(3张最重要的表) (1)raw_contacts 联系人表 保存联系人的id contact_id (2)data 数据表 保存联系人的数据 ( ...
- 深入理解 CSS变形 transform(3d)
坐标轴 在了解透视之前,首先要先了解坐标轴.3D变形与2D变形最大的不同就在于其参考的坐标轴不同.2D变形的坐标轴是平面的,只存在x轴和y轴,而3D变形的坐标轴则是x.y.z三条轴组成的立体空间,x轴 ...
- mongodb权威指南读书笔记
一个服务器能不能运行多个不同端口的mongo实例? 如果两个对象不相等,hashcode一定不相等:如果两个对象相等,hashcode相等或者不相等? 修改器速度42页 update({},{&quo ...
- timestamp 正常日期转换成时间戳格式
select cast(sysdate as timestamp) "DATE" from dual select to_timestamp(to_date(sysdate, 'y ...
- 如何打开Windows Server 2003 内存寻址扩展
本文介绍了如何在系统内存大于4G的情况下,让windows2003 Advanced Server支持大内存的方法: 由于Windows2003 32bit是32位操作系统,当服务器配备内存高达4G时 ...