我有一個數據庫,其中所有表格的前綴都是一組相同的字符。之所以這樣做,是因爲他們曾經在一個共享數據庫中設置了數百個其他表格的寵物項目。應用程序以及數據庫現在已經準備好移出這個階段,並準備好獨立出來。我想刪除每個表的前綴。有沒有更簡單的方法來做到這一點,而不是單獨右鍵單擊和重命名每個表?重命名數據庫中的所有表格
回答
你可以做一些像腳本整個數據庫一樣的東西,並對腳本進行字符串替換,在新數據庫上運行它,然後導入數據。這當然取決於您可以匹配要替換的字符串的程度。您可能也必須在應用程序中進行相應的更改。你總是可以在測試數據庫上嘗試這樣的事情,看看它是否可行。
在此看一看太 - Mass Renaming of Tables and Stored Procedures
一種方法具有一定的成本,另一個是類似我的建議。
您可以編寫腳本來查看元信息並對其進行更改,但這不會破壞所有SP和參數化查詢嗎?
它會毀了一切 - 視圖等等。如果有SCHEMABINDING任何事情,那就必須先處理...... –
首先,編寫一個具有表名參數的存儲過程,並使用字符串解析和ALTER TABLE從指定的表中刪除前綴。
然後,使用sp_MSforeachtable爲每個表調用該過程。
參考:http://weblogs.sqlteam.com/joew/archive/2007/10/23/60383.aspx
select 'exec sp_rename @objname=' + name + ', @newname=' + replace(name ,'prefixedchars', '')
from sysObjects
where type = 'U'
從這個結果將是這樣的:
exec sp_rename @objname=prefixedcharsTable1, @newname=Table1
exec sp_rename @objname=prefixedcharsTable2, @newname=Table2
exec sp_rename @objname=prefixedcharsTable3, @newname=Table3
etc... for each table in your db
所有你需要做的就是這些語句複製到一個新的查詢窗口並運行。
注意事項:
- 如下,你會得到一個警告消息:
Caution: Changing any part of an object name could break scripts and stored procedures.
- 您將可以在任何存儲過程,函數,視圖,觸發器和重命名錶。
這是一個很好的解決方案,因爲您可以在運行之前看到重命名腳本。 –
純粹從「替換右鍵單擊,重命名」透視圖(不重命名引用,過程,視圖等) - 混合一點點。獲取表的列表:
select name from sys.Tables
複製和過去,到Emacs(或你喜歡的正則表達式的行編輯器),然後運行一個正則表達式行置換: 搜索\(xyz.*\)
與SP_RENAME 'xyz\1', '\1';
這repalces表xyzFoo與富貴取代。將行粘貼回SQL Server並運行它。
- 1. 循環並重命名我的數據庫中的所有表格
- 2. Laravel:重命名數據庫表格中斷功能
- 3. 重命名所有表中的列 - SQL
- 4. SQL - 以編程方式重命名數據庫中的所有表列
- 5. 重命名數據庫
- 6. MySQL - 重命名數據庫
- 7. PostgreSQL - 重命名數據庫
- 8. 重命名Rails數據庫
- 9. 重命名cPanel中的數據庫
- 10. 許多數據庫表中的重構重命名字段
- 11. 在所有數據庫的所有對象中查找表名
- 12. 命名數據庫中的中間表
- 13. 如何重命名名稱爲「數據庫」的MSSQL數據庫?
- 14. 查找所有空表格在服務器上的所有數據庫中命名爲MAP_ALERT
- 15. 是否可以重命名數據庫中已有的MySQL表名?
- 16. 重命名數據庫名稱 - mysql
- 17. 在MySQL中,如何批量重命名數據庫中的表?
- 18. 重命名數據框中所有列的子集
- 19. SQL命令沒有將數據網格中的所有值插入數據庫,
- 20. 實體框架代碼首先重命名數據庫中的模型/表格
- 21. 如何在數據庫中選擇具有特定名稱的所有表格
- 22. 根據每張表格的單元格值命名所有表格
- 23. 查看所有表格中所有表格中的所有條目/數據
- 24. 將列表框中的所有數據移動到數據庫中的表格
- 25. NHibernate:獲取所有數據庫表中的所有數據
- 26. 用數據庫中所有表名中的下劃線替換空格
- 27. SQL中特定數據庫中所有表的列名稱
- 28. 重建兩個表中的數據並重命名錶數據中的行
- 29. 重命名錶格標題
- 30. 重命名蒙戈數據庫
我會創建一個新的數據庫,新的表格命名方案,並選擇數據。 –
也看看這個 - 「大規模重命名錶和存儲過程」http://stackoverflow.com/questions/1098585/mass-renaming-of-tables-and-stored-procedures – Bratch