sql >> Databáze >  >> RDS >> Sqlserver

Přejmenování sloupce bez porušení skriptů a uložených procedur

No, existuje spousta nástrojů třetích stran, které slibují tento typ "bezpečného přejmenování", některé zdarma a některé ne:

Musím říci, že jsem nikdy nezkoušel žádný z těchto specifických nástrojů pro tento konkrétní úkol, ale mám určité zkušenosti s SSDT a některými produkty RedGate a považuji je za velmi dobré nástroje. Nevím nic o ApexSQL.

Další možností je pokusit se napsat skript SQL sami. Než však začnete, je třeba vzít v úvahu několik věcí:

  • Je možné přistupovat k vaší tabulce přímo mimo server SQL? Myslím, je možné, že nějaký software provádí příkaz SQL přímo na této tabulce? Pokud ano, můžete jej při přejmenování sloupce přerušit a žádný nástroj SQL v této situaci nepomůže.
  • Jsou vaše skriptovací schopnosti SQL opravdu tak dobré? Považuji se za poměrně zkušeného se serverem SQL, ale myslím, že napsat takový skript je nad mé schopnosti. Ne, že by to pro mě bylo nemožné, ale něco, co mohu získat zdarma, bude pravděpodobně vyžadovat příliš mnoho času a úsilí.

Pokud se rozhodnete jej napsat sami, existuje několik článků, které by vám v tomto úkolu mohly pomoci:

Nejprve oficiální dokumentace společnosti Microsoft pro sys.sql_expression_dependencies .
Za druhé, článek s názvem Různé způsoby hledání závislostí objektů SQL Server kterou napsal 13letý DBA a v neposlední řadě související otázka na webu správce databáze StackExchange.

Můžete samozřejmě jít bezpečným způsobem, který navrhl Gordon Linoff ve svém komentáři, nebo použít synonyma jako cílová data navržená ve své odpovědi, ale pak budete muset ručně upravit všechny závislosti sloupců ručně, a jak jsem pochopil , tomu se chcete vyhnout.



  1. MySQL:Jak hledat ve více tabulkách řetězec existující v libovolném sloupci

  2. MySQL IF NOT NULL, pak zobrazte 1, jinak zobrazte 0

  3. Indexování tabulek na PostgreSQL pro výkon

  4. Upgrade datové platformy SQL Server v roce 2015