簡體   English   中英

你能為重組目的給SQL列名稱一個“第二個名字”嗎?

[英]Can you give SQL Column names a 'second name' for refactoring purposes?

在一個非常靈活的項目開發中,頻繁更新最棘手的問題是重構表和列命名。

當我們處理高風險的代碼時,我們可以在Production數據庫中添加一個列或一個表,並繼續處理實際數據 - 省略更新腳本的麻煩,並使用來自的最新數據更新TestDb。 ProductionDb。

只需添加列,為其添加默認值即可。 在這種情況下,沒有什么可怕的。 一切都在繼續,沒有停機,沒有更新腳本的麻煩。

問題

有時我們想要重構列名,因為它們在事后的想法中並沒有很好的選擇。

我想知道這樣的事情是否可行:

  • 給列(或表)提供(半)永久“第二名”
  • 生產服務器與OldName對話
  • 發展與NewName的談話
  • 部署新版本后,我們可以刪除OldName別名

結果:重構列/表名稱時沒有任何停機時間或更新腳本。

這可能嗎? 我們使用Entity FrameworkSQL 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM