sqlserver 修改列名及表名的sql語句
更新時(shí)間:2012年06月28日 19:15:17 作者:
因需求變更要改表的列名,平常都是跑到Enterprise manager中選取服務(wù)器->數(shù)據(jù)庫->表,然后修改表,這樣太麻煩了,查了一下,可以用script搞定
代碼如下:
EXEC sp_rename '表名.[原列名]', '新列名', 'column'
Transact-SQL 參考
sp_rename
更改當(dāng)前數(shù)據(jù)庫中用戶創(chuàng)建對象(如表、列或用戶定義數(shù)據(jù)類型)的名稱。
語法
sp_rename [ @objname = ] 'object_name' ,
[ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
參數(shù)
[@objname =] 'object_name'
是用戶對象(表、視圖、列、存儲(chǔ)過程、觸發(fā)器、默認(rèn)值、數(shù)據(jù)庫、對象或規(guī)則)或數(shù)據(jù)類型的當(dāng)前名稱。如果要重命名的對象是表中的一列,那么 object_name 必須為 table.column 形式。如果要重命名的是索引,那么 object_name 必須為 table.index 形式。object_name 為 nvarchar(776) 類型,無默認(rèn)值。
[@newname =] 'new_name'
是指定對象的新名稱。new_name 必須是名稱的一部分,并且要遵循標(biāo)識(shí)符的規(guī)則。newname 是 sysname 類型,無默認(rèn)值。
[@objtype =] 'object_type'
是要重命名的對象的類型。object_type 為 varchar(13) 類型,其默認(rèn)值為 NULL,可取下列值。
值 描述
COLUMN 要重命名的列。
DATABASE 用戶定義的數(shù)據(jù)庫。要重命名數(shù)據(jù)庫時(shí)需用此選項(xiàng)。
INDEX 用戶定義的索引。
OBJECT 在 sysobjects 中跟蹤的類型的項(xiàng)目。例如,OBJECT 可用來重命名約束(CHECK、FOREIGN KEY、PRIMARY/UNIQUE KEY)、用戶表、視圖、存儲(chǔ)過程、觸發(fā)器和規(guī)則等對象。
USERDATATYPE 通過執(zhí)行 sp_addtype 而添加的用戶定義數(shù)據(jù)類型。
返回代碼值
0(成功)或非零數(shù)字(失?。?
注釋
只能更改當(dāng)前數(shù)據(jù)庫中的對象名稱或數(shù)據(jù)類型名稱。大多數(shù)系統(tǒng)數(shù)據(jù)類型和系統(tǒng)對象的名稱不能更改。
重命名視圖時(shí),sysobjects 表中有關(guān)該視圖的信息將得到更新。重命名存儲(chǔ)過程時(shí),sysobjects 表中有關(guān)該過程的信息將得到更新。
每當(dāng)重命名 PRIMARY KEY 或 UNIQUE 約束時(shí),sp_rename 都會(huì)自動(dòng)為相關(guān)聯(lián)的索引重命名。如果重命名的索引與 PRIMARY KEY 約束相關(guān)聯(lián),那么 sp_rename 也會(huì)自動(dòng)重命名主鍵。
重要 重命名存儲(chǔ)過程和視圖后,請清空過程高速緩存以確保所有相關(guān)的存儲(chǔ)過程和視圖都重新編譯。
由于存儲(chǔ)過程和視圖都不存儲(chǔ)數(shù)據(jù),所以這兩種對象均可快速刪除和重建。重命名文本對象時(shí),要獲得最佳結(jié)果,應(yīng)刪除并使用其新名稱重新創(chuàng)建對象。
權(quán)限
sysadmin 固定服務(wù)器角色成員、db_owner 和 db_ddladmin 固定數(shù)據(jù)庫角色成員或?qū)ο笏姓呖梢詧?zhí)行 sp_rename。只有 sysadmin 和 dbcreator 固定服務(wù)器角色成員才能將"database"作為 object_type 來執(zhí)行 sp_rename。
示例
A. 重命名表
下例將表 customers 重命名為 custs。
EXEC sp_rename 'customers', 'custs'
B. 重命名列
下例將表 customers 中的列 contact title 重命名為 title。
EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'
請參見
ALTER TABLE
CREATE DEFAULT
CREATE PROCEDURE
CREATE RULE
CREATE TABLE
CREATE TRIGGER
CREATE VIEW
數(shù)據(jù)類型
SETUSER
sp_addtype
sp_depends
sp_renamedb
系統(tǒng)存儲(chǔ)過程
注:系統(tǒng)數(shù)據(jù)表不能改
EXEC sp_rename '表名.[原列名]', '新列名', 'column'
Transact-SQL 參考
sp_rename
更改當(dāng)前數(shù)據(jù)庫中用戶創(chuàng)建對象(如表、列或用戶定義數(shù)據(jù)類型)的名稱。
語法
sp_rename [ @objname = ] 'object_name' ,
[ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
參數(shù)
[@objname =] 'object_name'
是用戶對象(表、視圖、列、存儲(chǔ)過程、觸發(fā)器、默認(rèn)值、數(shù)據(jù)庫、對象或規(guī)則)或數(shù)據(jù)類型的當(dāng)前名稱。如果要重命名的對象是表中的一列,那么 object_name 必須為 table.column 形式。如果要重命名的是索引,那么 object_name 必須為 table.index 形式。object_name 為 nvarchar(776) 類型,無默認(rèn)值。
[@newname =] 'new_name'
是指定對象的新名稱。new_name 必須是名稱的一部分,并且要遵循標(biāo)識(shí)符的規(guī)則。newname 是 sysname 類型,無默認(rèn)值。
[@objtype =] 'object_type'
是要重命名的對象的類型。object_type 為 varchar(13) 類型,其默認(rèn)值為 NULL,可取下列值。
值 描述
COLUMN 要重命名的列。
DATABASE 用戶定義的數(shù)據(jù)庫。要重命名數(shù)據(jù)庫時(shí)需用此選項(xiàng)。
INDEX 用戶定義的索引。
OBJECT 在 sysobjects 中跟蹤的類型的項(xiàng)目。例如,OBJECT 可用來重命名約束(CHECK、FOREIGN KEY、PRIMARY/UNIQUE KEY)、用戶表、視圖、存儲(chǔ)過程、觸發(fā)器和規(guī)則等對象。
USERDATATYPE 通過執(zhí)行 sp_addtype 而添加的用戶定義數(shù)據(jù)類型。
返回代碼值
0(成功)或非零數(shù)字(失?。?
注釋
只能更改當(dāng)前數(shù)據(jù)庫中的對象名稱或數(shù)據(jù)類型名稱。大多數(shù)系統(tǒng)數(shù)據(jù)類型和系統(tǒng)對象的名稱不能更改。
重命名視圖時(shí),sysobjects 表中有關(guān)該視圖的信息將得到更新。重命名存儲(chǔ)過程時(shí),sysobjects 表中有關(guān)該過程的信息將得到更新。
每當(dāng)重命名 PRIMARY KEY 或 UNIQUE 約束時(shí),sp_rename 都會(huì)自動(dòng)為相關(guān)聯(lián)的索引重命名。如果重命名的索引與 PRIMARY KEY 約束相關(guān)聯(lián),那么 sp_rename 也會(huì)自動(dòng)重命名主鍵。
重要 重命名存儲(chǔ)過程和視圖后,請清空過程高速緩存以確保所有相關(guān)的存儲(chǔ)過程和視圖都重新編譯。
由于存儲(chǔ)過程和視圖都不存儲(chǔ)數(shù)據(jù),所以這兩種對象均可快速刪除和重建。重命名文本對象時(shí),要獲得最佳結(jié)果,應(yīng)刪除并使用其新名稱重新創(chuàng)建對象。
權(quán)限
sysadmin 固定服務(wù)器角色成員、db_owner 和 db_ddladmin 固定數(shù)據(jù)庫角色成員或?qū)ο笏姓呖梢詧?zhí)行 sp_rename。只有 sysadmin 和 dbcreator 固定服務(wù)器角色成員才能將"database"作為 object_type 來執(zhí)行 sp_rename。
示例
A. 重命名表
下例將表 customers 重命名為 custs。
EXEC sp_rename 'customers', 'custs'
B. 重命名列
下例將表 customers 中的列 contact title 重命名為 title。
EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'
請參見
ALTER TABLE
CREATE DEFAULT
CREATE PROCEDURE
CREATE RULE
CREATE TABLE
CREATE TRIGGER
CREATE VIEW
數(shù)據(jù)類型
SETUSER
sp_addtype
sp_depends
sp_renamedb
系統(tǒng)存儲(chǔ)過程
注:系統(tǒng)數(shù)據(jù)表不能改
您可能感興趣的文章:
- 如何將MySQL的兩個(gè)表名對調(diào)
- 教你如何在windows與linux系統(tǒng)中設(shè)置MySQL數(shù)據(jù)庫名、表名大小寫敏感
- MySQL表名不區(qū)分大小寫的設(shè)置方法
- 深入mysql存儲(chǔ)過程中表名使用參數(shù)傳入的詳解
- php獲取mysql數(shù)據(jù)庫中的所有表名的代碼
- Mysql數(shù)據(jù)庫名和表名在不同系統(tǒng)下的大小寫敏感問題
- Mysql中返回一個(gè)數(shù)據(jù)庫的所有表名,列名數(shù)據(jù)類型備注
- oracle 查詢表名以及表的列名
- SQLSERVER查詢所有數(shù)據(jù)庫名,表名,和字段名的語句
- MYSQL將表名稱修改成大寫的存儲(chǔ)過程
相關(guān)文章
idea連接sql?sever2019圖文教程(超詳細(xì))
這篇文章主要介紹了idea連接sql?sever2019的圖文教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
SQL?SERVER數(shù)據(jù)庫中日期格式化詳解
這篇文章主要給大家介紹了關(guān)于SQL?SERVER數(shù)據(jù)庫中日期格式化的相關(guān)資料,在SQL?Server中可以使用CONVERT函數(shù)來格式化日期,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09
安裝MSDE2000提示為了安全起見,要求使用強(qiáng) SA 密碼的解決方法
今天下載了一個(gè)msde2000A,本想按照平時(shí)的安裝習(xí)慣,找到了setup.exe安裝程序,錯(cuò)誤提示彈出一個(gè)對話框:為了安全起見,要求使用強(qiáng) SA 密碼。請使用SAPWD開關(guān)提供同一密碼。有關(guān)詳細(xì)信息,請參閱自述文件。安裝程序?qū)⒘⒓赐顺?/div> 2013-08-08
SQL Server 利用觸發(fā)器對多表視圖進(jìn)行更新的實(shí)現(xiàn)方法
這篇文章主要介紹了SQL Server 利用觸發(fā)器對多表視圖進(jìn)行更新的實(shí)現(xiàn)方法,需要的朋友可以參考下2016-10-10
通過分析SQL語句的執(zhí)行計(jì)劃優(yōu)化SQL
基于代價(jià)的優(yōu)化器是很聰明的,在絕大多數(shù)情況下它會(huì)選擇正確的優(yōu)化器,減輕了DBA的負(fù)擔(dān)。但有時(shí)它也聰明反被聰明誤,選擇了很差的執(zhí)行計(jì)劃,使某個(gè)語句的執(zhí)行變得奇慢無比2011-10-10
Sqlserver之死鎖查詢以及批量解鎖的實(shí)現(xiàn)方法
這篇文章主要介紹了Sqlserver之死鎖查詢以及批量解鎖的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
sqlserver 數(shù)據(jù)庫連接字符串中的可選項(xiàng)收集
sqlserver 數(shù)據(jù)庫連接字符串中的可選項(xiàng)收集,需要的朋友可以參考下。2011-10-10最新評(píng)論

