[英]Can you give SQL Column names a 'second name' for refactoring purposes?
在一個非常靈活的項目開發中,頻繁更新最棘手的問題是重構表和列命名。
當我們處理非高風險的代碼時,我們可以在Production數據庫中添加一個列或一個表,並繼續處理實際數據 - 省略更新腳本的麻煩,並使用來自的最新數據更新TestDb。 ProductionDb。
只需添加列,為其添加默認值即可。 在這種情況下,沒有什么可怕的。 一切都在繼續,沒有停機,沒有更新腳本的麻煩。
問題
有時我們想要重構列名,因為它們在事后的想法中並沒有很好的選擇。
我想知道這樣的事情是否可行:
結果:重構列/表名稱時沒有任何停機時間或更新腳本。
這可能嗎? 我們使用Entity Framework和SQL Azure 。
也許有點天真:
表的替代名稱:
create view new_table_name as
select *
from old_table_name
列的替代名稱:
create view new_table_name as
select x.*, x.old_column_name as new_column_name
from old_table_name x
以下陳述有效:
update old_table_name
set old_column_name = value
where key = key_value
update new_table_name
set old_column_name = value
where key = key_value
update new_table_name
set new_column_name = value
where key = key_value
另請參見: 如何重命名SQL表列名稱而不破壞內容
您將無法為列或表名創建別名,如果您不想在某個階段更新數據庫列/表名,則需要運行腳本。
雖然在您的代碼中通過EF,您只需更新該列或表的屬性名稱,並保持映射到原始數據庫名稱。 這意味着至少您的對象將具有新的/更好的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.