Używam SQL Server 2008 i Navicat. Muszę zmienić nazwę kolumny w tabeli za pomocą SQL.
ALTER TABLE table_name RENAME COLUMN old_name to new_name;
To stwierdzenie nie działa.
sql
sql-server
sql-server-2008
alter-table
Serhio g. Lazin
źródło
źródło
Odpowiedzi:
Posługiwać się
sp_rename
Patrz: SERWER SQL - Jak zmienić nazwę kolumny lub nazwy tabeli
Dokumentacja: sp_rename (Transact-SQL)
W twoim przypadku byłoby to:
Pamiętaj, aby używać pojedynczych cudzysłowów w celu zawarcia wartości.
źródło
EXEC sp_RENAME '[TableName].[OldColumnName]', 'NewColumnName', 'COLUMN'
alter table
, że zakończy się niepowodzeniem, jeśli istnieją takie ograniczenia.Alternatywnie
SQL
możesz to zrobić w Microsoft SQL Server Management Studio. Oto kilka szybkich sposobów korzystania z GUI:Pierwszy sposób
Powoli kliknij dwukrotnie kolumnę. Nazwa kolumny stanie się edytowalnym polem tekstowym.
Drugi sposób
Kliknij kolumnę prawym przyciskiem myszy i wybierz polecenie Zmień nazwę z menu kontekstowego.
Na przykład:
Trzeci sposób
Ten sposób jest preferowany, gdy trzeba zmienić nazwę wielu kolumn za jednym razem.
Na przykład:
UWAGA: Wiem, że OP specjalnie poprosił o rozwiązanie SQL, pomyślałem, że może to pomóc innym :)
źródło
Próbować:
źródło
Powinieneś również określić schemat tabeli, w przeciwnym razie możesz otrzymać ten błąd:
Jeśli jest to skrypt wdrażania, poleciłbym również dodanie do niego dodatkowych zabezpieczeń.
źródło
Dobrą propozycją byłoby użycie już wbudowanej funkcji, ale innym sposobem jest:
Zaletą korzystania z niego
sp_rename
jest to, że dba on o wszystkie relacje z nim związane.Z dokumentacji :
źródło
Możesz użyć
sp_rename
do zmiany nazwy kolumny.Pierwszym parametrem jest obiekt do modyfikacji, drugi parametr to nowa nazwa, która zostanie podana do obiektu, a trzeci parametr KOLUMNA informuje serwer, że zmiana nazwy jest dla
column
i może być również używany do zmiany nazwytables
,index
aalias data type
.źródło
Ponieważ często tu przychodzę i zastanawiam się, jak używać nawiasów, ta odpowiedź może być przydatna dla takich jak ja.
OldColumnName
może być w[]
. To nie zadziała.NewColumnName
do[]
, będzie to prowadzić do[[NewColumnName]]
.źródło
SQL Server Management Studio ma jakiś system zdefiniowanej procedury przechowywane (SP),
z których jeden jest stosowany w celu zmiany nazwy column.The SP procedury sp_rename
Składnia: nazwa_sp. „[Nazwa_tabeli]. Stara_nazwa_kolumny”, „nowa_nazwa_kolumny”
Aby uzyskać dalszą pomoc, zapoznaj się z tym artykułem: nazwa_spy przez Microsoft Docs
Uwaga: po wykonaniu tego SP serwer SQL wyświetli komunikat ostrzegawczy jako „ Uwaga: Zmiana dowolnej części nazwy obiektu może spowodować uszkodzenie skryptów i procedur przechowywanych ”. Jest to krytyczne tylko wtedy, gdy napisałeś własny SP, który obejmuje kolumnę w tabeli, którą zamierzasz zmienić.
źródło
Ulepszona wersja @Taher
źródło
Lub możesz po prostu dwukrotnie kliknąć dwukrotnie kolumnę w SQL Management Studio i zmienić jej nazwę za pomocą interfejsu użytkownika ...
źródło
Uruchom zapytanie:
źródło