sp_rename <objname>, <newname> [, "index" | "column" | "partition"]
<objname>
是用户创建的对象(表、视图、列、分区、存储过程、索引、触发器、缺省值、规则、检查约束、参照约束或用户定义的数据类型)的原始名称。如果要重命名的对象是表中的某一列,<objname> 的格式必须为“<table>.<column>”。如果该对象是索引,<objname> 的格式必须为“<table>.<indexname>”。
<newname>
是该对象或数据类型的新名称。该名称必须符合标识符的规则,而且在当前数据库中必须唯一。
index
指定要重命名的对象是索引,而不是列。使用此参数可以重命名与列具有相同名称的索引,而无需删除并重新创建该索引。
column
指定要重命名的对象是列,而不是索引。此参数与 index 参数是同一选项的组成部分。
partition
当表分区名与列或索引名冲突时,指定要重命名的对象是一个分区。
将 titles 表重命名为 books:
sp_rename titles, books
将表 books 的列 title 重命名为 bookname:
sp_rename "books.title", bookname
将表 books 的索引 titleind 重命名为 titleindex:
sp_rename "books.titleind", titleindex
将用户定义的数据类型 tid 重命名为 bookid:
sp_rename tid, bookid
将表 titles 的索引 title_id 重命名为 isbn:
sp_rename "titles.title_id", isbn, "index"
将表索引 my_tab.ind1.i_part1 重命名为 i_part1_rename:
sp_rename "my_tab.ind1.i_part1", i_part1_rename
使用 "partition" 将索引分区 my_tab.ind1.ind1_928003306 重命名为 ind1_928003306_rename 以避免表分区名和索引名之间的冲突:
sp_rename "my_tab.ind1.ind1_928003306", ind1_928003306_rename, "partition"
使用 sp_rename 时,还存在一些其它注意事项:
<newname> 中指定表名。请参见示例 2、3 和 5。
[,"<index>" | "<column>"] 参数,该参数指定是否重命名索引或列。在下面的示例中,假定名称为 idx 的索引和列都存在:
<h2>sp_rename "t.idx", new_idx, "column"</h2>
Column name has been changed. (Return status = 0)
<h2>sp_rename "t.idx", new_idx, "index"</h2>
Index name has been changed. (Return status = 0)
Changing an object or column name could break
existing stored procedures, cached statements or
other compiled objects.