1

我在使用SP_RENAME存儲過程重命名錶列時犯了一個錯誤,現在我無法恢復它。這是SQL Server的有效標識符嗎?這是一個sql表列的有效標識符嗎?

enter image description here

這是我做過什麼:

SP_RENAME '[WTF].[Name]', '[WhatThisFunction]', 'COLUMN' 

然後,看後意想不到的結果,我想與

SP_RENAME '[WTF].[WhatThisFunction]', 'Name', 'COLUMN' 

回滾但SQL說對象不能是找到。有什麼方法可以跳過括號嗎?

更新: 的錯誤信息是: 消息15248,級別11,狀態1,過程sp_rename可以,215線 要麼參數@objname不明確或所要求保護的@objtype(列)是錯誤的。

+0

我想你只需要將'[Name]'括起來' – 2013-03-01 20:10:02

+0

@Martin,謝謝。這完全是同一個問題。 – lontivero 2013-03-01 20:14:09

回答

-1

而不是sp_rename嘗試鼠標右鍵單擊並重命名。

更新:

試試這個:

你的觀點是提供腳本。假設整個數據庫腳本,如果我在你的鞋子裏,那麼我將使用我的鼠標右鍵單擊它來糾正它,並將生成我需要的腳本。

我希望你能明白我的觀點。

如果它的情況,那麼上面會起作用。如果不是那麼首先請清楚你需要交付的腳本。

+1

但我需要和腳本。我的意思是,我必須爲我的客戶提供一個腳本。 – lontivero 2013-03-01 20:08:18

+0

@lontivero:查看更新的答案 – 2013-03-01 20:14:42

2

這爲我工作:

SP_RENAME '[WTF].[[WhatThisFunction]]]', 'Name', 'COLUMN' 
2

我不知道爲什麼的答案被刪除,但這個腳本會在事實上改變了列的名稱改回「名」。

SP_RENAME '[WTF]."[WhatThisFunction]"', 'name', 'COLUMN' 

所以纔會

SP_RENAME '[WTF].[[WhatThisFunction]]]', 'Name', 'COLUMN' 

所列出的user1948904。

您最初遇到問題的原因(我做了同樣的事情)是,如果您將[]放在[]上,sp_rename的第一個參數可以有[]或不可以。那麼第二個參數將包含在名稱中。所以你的專欄的名字變成了[WhatThisFunction]而不是WhatThisFunction這可能是你想要的。

有趣的是,如果你去到設計窗口中的列名實際上列爲[WhatThisFunction]]]當你編寫腳本的變化它傳遞到sp_rename。