sql >> Database teknologi >  >> RDS >> Sqlserver

Omdøbning af en kolonne uden at bryde scripts og lagrede procedurer

Nå, der er en masse tredjepartsværktøjer, der lover denne type "sikkert omdøb", nogle gratis og nogle ikke:

  • ApexSQL har et gratis værktøj for det, som MWillemse skrev i sit svar,
  • RedGate har et kommercielt værktøj kaldet SQLPrompt som også har en sikker omdøbningsfunktion, men det er langt fra at være gratis.
  • Microsoft har et Visual Studio-tilføjelsesprogram kaldet SQL-serverdataværktøjer (eller SSDT i den korte version), som Dan Guzman skrev i sin kommentar.

Jeg må sige, at jeg aldrig har prøvet nogen af ​​disse specifikke værktøjer til den specifikke opgave, men jeg har en vis erfaring med SSDT og nogle af RedGates produkter, og jeg anser dem for at være meget gode værktøjer. Jeg ved intet om ApexSQL.

En anden mulighed er at prøve at skrive sql-scriptet selv, men der er et par ting, du skal tage i betragtning, før du starter:

  • Kan din tabel tilgås direkte uden for sql-serveren? Jeg mener, er det muligt, at noget software udfører sql-sætning direkte på den tabel? Hvis det er tilfældet, kan du bryde det, når du omdøber den kolonne, og intet sql-værktøj vil hjælpe i denne situation.
  • Er dine sql scripting færdigheder virkelig så gode? Jeg anser mig selv for at være temmelig erfaren med sql-server, men jeg tror, ​​at det er uden for mine evner at skrive et script som det. Ikke at det er umuligt for mig, men det vil nok tage for meget tid og kræfter til noget, jeg kan få gratis.

Skulle du beslutte dig for at skrive det selv, er der et par artikler, der måske kan hjælpe dig med den opgave:

Først Microsofts officielle dokumentation af sys.sql_expression_dependencies .
For det andet en artikel kaldet Forskellige måder at finde SQL Server-objektafhængigheder på der er skrevet af en 13 års erfaring DBA, og sidst men ikke mindst, et relateret spørgsmål på StackExchanges databaseadministrators websted.

Du kunne selvfølgelig gå med den sikre måde Gordon Linoff foreslog i sin kommentar, eller bruge synonymer som destinationsdata foreslået i hans svar, men så bliver du nødt til manuelt at ændre alle kolonneafhængigheder manuelt, og efter hvad jeg forstår , det er det, du vil undgå.



  1. SQL SERVER – SQL_NO_CACHE og OPTION (GENKOMPILER)

  2. Kortlægning af sammensat nøgle med Hibernate producerer et råfelt i Oracle

  3. SQL NOT Operator

  4. Hvordan flytter man kolonner i en MySQL-tabel?