2012-02-20 79 views
30

我需要關於SQL Server表列的幫助。 我正嘗試重命名列名,但這不起作用。如何使用T-SQL重命名列名稱

USE COST_mesta_test 
GO 
EXEC sp_rename '[dbo].[1965$].obec' , 'people' , 'COLUMN' 
GO 

我試圖括號[]和路徑的不同組合到餐桌 「obec」 (例如:1965.obec; 1965年$ .obec; 1965年[obec]等) 但我仍得到一個錯誤:

Either the parameter @objname is ambiguous or the claimed @objtype (COLUMN) is wrong.

回答

54

我真的不明白你的表是如何設置的 - 即。表名,字段名等 - 所以這是的PROC如何爲列重命名的例子:

如果我有這樣的一個表:

CREATE TABLE [dbo].[Company](
[ID] [int], 
[CompanyName] [varchar](20) 
) 

,並想改變[CompanyName]列,這是命令:

EXEC sys.sp_rename 
    @objname = N'dbo.Company.CompanyName', 
    @newname = 'Name', 
    @objtype = 'COLUMN' 

我懷疑你的第一個參數是不正確的。

從文檔(sp_rename (Transact-SQL)

If the object to be renamed is a column in a table, object_name must be in the form table.column or schema.table.column. If the object to be renamed is an index, object_name must be in the form table.index or schema.table.index

7

您可以通過右鍵單擊列名稱也更改列名,並在對象資源管理器中選擇「重命名」選項。

+0

+1用於顯示通過UI對其進行重命名的方式。 – 2014-01-01 07:33:13

+1

如果你想創建遷移腳本(你經常這樣做),通常不是一個好主意。 – 2015-11-23 10:30:44

+0

問題是關於用T-SQL重命名而不是對象瀏覽器!這不是一個答案。 – QMaster 2017-05-30 19:42:15