怎樣重命名sql server中的表

有剛進公司不久小火辦問我:資料庫中一個表因為各種原因,需要重命名,怎麼操作?急,在線等

我說,你先用ssms右鍵操作重命名一下吧。

他說,這不能體現出一個程式設計師的尊嚴。

我又繼續追問後得知,他是一個很(會)聰(偷)明(懶)的程式設計師,他自己做了一個日誌跟蹤程序來跟蹤老系統的資料庫操作來獲得業務知識。每次都會用一張表來保存各種操作,然後寫了一個界面去讀,然後每次在界面裡面都會默認去讀一個表名規則符合他的日誌表名的表,但是又想默認讀最後一次保存日誌的那個表(你咋這麼懶呢,連點滑鼠都不想點了),然後每次就需要清空掉最後那張表,把數據遷移到日誌備份表中。好糾結的需求啊。

工具/原料

ms sqlserver

方法/步驟

第1招(rename)、很簡單,在ssms(sql server management studio)左側樹上,找到表,右鍵重命名(或者定位(滑鼠或者上下左右鍵)到這張表按F2),輸入表的新名字,回車。

還是截個圖吧。

第2招(insert into select from )、通過寫程序,創建一張新表,表名為你的表新名,比如這位小兄弟想把Arizhi命名為Arizhi20151030,則建一張表,表名為這個,欄位描述等均與第一張表相同,為了達到這個效果,在表Arizhi上右鍵-->編寫表腳本為-->Create到-->新查詢編輯器窗口

第二招續1,修改腳本中的名字為新表的名字,運行之(滑鼠點紅色嘆號按鈕,或者直接按F5快捷鍵)

第二招續2,將原表中的數據插入新表中,然後刪除原表中的數據,就可以了

INSERT INTO Arizhi20151030 SELECT * FROM dbo.Arizhi;TRUNCATE TABLE dbo.Arizhi;

第3招(Select into from ),簡化第二招的操作,但是不會有主鍵什麼的帶進去,適合這種臨時的日誌表,沒有主鍵的情況。

SELECT *  INTO Arizhibakat20151029 FROM dbo.Arizhi;

truncate table Arizhi;

第四招(sp_rename),終極大招,適合在程序中調用(個人覺得程式設計師要掌握的方法,就是要熟悉各種資料庫的系統函數和方法,並加以權衡運用到程序開發中,才是一個想偷懶,能夠偷懶,老闆還喜歡你偷懶的程式設計師)。

EXEC sp_rename 'Arizhi','Arizhi201510301106';

注意事項

rename方法適合於小白
insert into select from方法適合於各種資料庫,不只是mssql server,但是在這個場景下不是最優
Select into from 丟掉了主鍵信息,不是最優,但是適合於備份臨時的數據
sp_rename這個方法建議各位sql server dba和程式設計師們廣泛使用
若覺得這篇經驗寫的好或者還湊合的話,記得點擊頁面右上角的「大拇指」或者「五角星」,謝謝了。僅供參考哦!如果有任何意見,請留言,或者私信我

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場