Cóż, istnieje grono 3rd narzędzi firm, które są obiecujące tego typu „bezpiecznej zmiany nazwy”, niektóre za darmo, a niektóre nie są:
- ApexSQL ma free tool na to, jak MWillemse napisał jego odpowiedź,
- RedGate ma komercyjne narzędzie o nazwie SQLPrompt, które również ma bezpieczny tytuł do zmiany nazwy, jednak nie jest to darmowe.
- Firma Microsoft ma dodatek do studio graficznego o nazwie SQL Server Data Tools (lub SSDT w wersji skróconej), jak napisał Dan Guzman w swoim komentarzu.
muszę powiedzieć, że nigdy nie próbowałem żadnej z tych konkretnych narzędzi dla danego zadania, ale mam pewne doświadczenie z SSDT a niektóre z produktów RedGate i uważam je za bardzo dobre narzędzia. Nic nie wiem o ApexSQL.
Inną opcją jest, aby spróbować i napisać skrypt SQL samodzielnie, jednak istnieje kilka rzeczy, aby wziąć pod uwagę przed rozpoczęciem:
- Czy Twój stół jest dostępny bezpośrednio z zewnątrz z serwerem sql? Chodzi mi o to, czy jest możliwe, że niektóre oprogramowanie wykonuje polecenie sql bezpośrednio na tym stole? Jeśli tak, możesz złamać go, gdy zmienisz nazwę tej kolumny, a żadne narzędzie sql nie pomoże w tej sytuacji.
- Czy Twoje umiejętności obsługi skryptów sql są naprawdę dobre? Uważam się za dość doświadczonego z serwerem sql, ale myślę, że napisanie takiego skryptu wykracza poza moje umiejętności. Nie to jest dla mnie niemożliwe, ale prawdopodobnie za dużo czasu i wysiłku zajmie mi coś, co mogę dostać za darmo.
Jeżeli zdecydujesz się napisać samemu, istnieje kilka artykułów, które mogą pomóc w tym zadaniu:
pierwsze, Microsoft oficjalnej dokumentacji sys.sql_expression_dependencies.
Po drugie, artykuł o nazwie Different Ways to Find SQL Server Object Dependencies, napisany przez 13-letnie doświadczenie DBA, i ostatni, ale nie najmniej, a related question na stronie administratora bazy danych StackExchange.
Można oczywiście pójść w bezpieczny sposób, jak sugerował Gordon Linoff w swoim komentarzu, lub użyć synonimów takich jak dane dotyczące miejsca przeznaczenia zasugerowanych w jego odpowiedzi, ale wtedy trzeba będzie ręcznie zmodyfikować wszystkie zależności kolumn ręcznie, oraz z tego, co rozumiem, tego właśnie chcesz uniknąć.
Możesz zmienić nazwę kolumny, a następnie dodać obliczoną kolumnę z poprzednią nazwą kolumny i zmienić wyzwalacze i procedury przechowywane w czasie wolnym. –
Możesz spróbować uzyskać kod skryptu z tabel sys, zastąpić go i przekompilować w jednym kroku za pomocą skryptu, ale jeśli nie ma zbyt wielu obiektów, wolę to zrobić, otwierając każdy skrypt ze względu na poprawność. – jean
Również w MS-SQL możesz użyć 'alter table dbo.tbBase alter column [OriginalName] UNIQUEIDENTIFIER not null GO' – jean