Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Преименуване на колона без прекъсване на скриптовете и съхранените процедури

Е, има куп инструменти на трети страни, които обещават този тип „безопасно преименуване“, някои безплатни, а други не:

Трябва да кажа, че никога не съм опитвал нито един от тези специфични инструменти за тази конкретна задача, но имам известен опит с SSDT и някои от продуктите на RedGate и ги смятам за много добри инструменти. Не знам нищо за ApexSQL.

Друг вариант е да опитате да напишете sql скрипта сами, но има няколко неща, които трябва да вземете под внимание, преди да започнете:

  • Може ли вашата таблица да бъде достъпна директно извън sql сървъра? Искам да кажа, възможно ли е някакъв софтуер да изпълнява sql израз директно на тази таблица? Ако е така, може да го счупите, когато преименувате тази колона, и никакъв sql инструмент няма да помогне в тази ситуация.
  • Наистина ли вашите умения за sql скриптове са толкова добри? Смятам, че имам доста опит с sql сървър, но смятам, че писането на подобен скрипт е извън моите умения. Не че е невъзможно за мен, но вероятно ще отнеме твърде много време и усилия за нещо, което мога да получа безплатно.

Ако решите да го напишете сами, има няколко статии, които могат да ви помогнат в тази задача:

Първо, официалната документация на Microsoft за sys.sql_expression_dependencies .
Второ, статия, наречена Различни начини за намиране на зависимости на обекти на SQL Server което е написано от 13-годишен опитен DBA и не на последно място, свързан въпрос на уебсайта на администратора на база данни на StackExchange.

Бихте могли, разбира се, да използвате безопасния начин, предложен от Гордън Линоф в неговия коментар, или да използвате синоними като данни за местоназначение, предложени в отговора му, но тогава ще трябва ръчно да промените ръчно всички зависимости на колоните и доколкото разбирам , това е, което искате да избегнете.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Връщане на списък с таблици и изгледи в SQL Server с помощта на T-SQL (sp_tables)

  2. Намерете невалидни дати в SQL Server 2008

  3. Начини за проследяване на изтрита база данни в SQL Server

  4. Как да извлека данни от база данни на SQL Server в C#?

  5. T-SQL условна поръчка по