Ich verwende SQL Server 2008 und Navicat. Ich muss eine Spalte in einer Tabelle mit SQL umbenennen.
ALTER TABLE table_name RENAME COLUMN old_name to new_name;
Diese Aussage funktioniert nicht.
sql
sql-server
sql-server-2008
alter-table
Serhio g. Lazin
quelle
quelle
Antworten:
Verwenden
sp_rename
Siehe: SQL SERVER - So benennen Sie einen Spalten- oder Tabellennamen um
Dokumentation: sp_rename (Transact-SQL)
Für Ihren Fall wäre es:
Denken Sie daran, einfache Anführungszeichen zu verwenden, um Ihre Werte einzuschließen.
quelle
EXEC sp_RENAME '[TableName].[OldColumnName]', 'NewColumnName', 'COLUMN'
alter table
die fehlschlägt, wenn solche Einschränkungen bestehen.Alternativ dazu
SQL
können Sie dies in Microsoft SQL Server Management Studio tun. Hier sind einige schnelle Möglichkeiten, die GUI zu verwenden:Erster Weg
Doppelklicken Sie langsam auf die Spalte. Der Spaltenname wird zu einem bearbeitbaren Textfeld.
Zweiter Weg
Klicken Sie mit der rechten Maustaste auf die Spalte und wählen Sie im Kontextmenü die Option Umbenennen.
Zum Beispiel:
Dritter Weg
Diese Methode ist vorzuziehen, wenn Sie mehrere Spalten gleichzeitig umbenennen müssen.
Zum Beispiel:
HINWEIS: Ich weiß, dass OP speziell nach einer SQL-Lösung gefragt hat, dachte, dies könnte anderen helfen :)
quelle
Versuchen:
quelle
Sie sollten auch das Schema der Tabelle angeben, da sonst der folgende Fehler angezeigt wird:
Wenn es sich um ein Bereitstellungsskript handelt, würde ich auch empfehlen, zusätzliche Sicherheit hinzuzufügen.
quelle
Es wäre ein guter Vorschlag, eine bereits integrierte Funktion zu verwenden, aber ein anderer Weg ist:
Der Vorteil hinter der Verwendung von
sp_rename
ist, dass es sich um alle damit verbundenen Beziehungen kümmert.Aus der Dokumentation :
quelle
Sie können
sp_rename
eine Spalte umbenennen.Der erste Parameter ist das Objekt modifiziert werden, ist der zweite Parameter der neue Name, der auf das Objekt gegeben wird, und der dritte Parameter COLUMN informiert der Server , dass der Umbenennungs für das ist
column
, und auch verwendet werden können , umbenennentables
,index
undalias data type
.quelle
Da ich oft hierher komme und mich dann frage, wie ich die Klammern verwenden soll, kann diese Antwort für Leute wie mich nützlich sein.
OldColumnName
darf nicht drin sein[]
. Es wird nicht funktionieren.NewColumnName
in[]
, wird es führen in[[NewColumnName]]
.quelle
In SQL Server Management Studio sind einige systemdefinierte gespeicherte Prozeduren (SP) vorhanden.
Eine davon wird zum Umbenennen einer Spalte verwendet. Der SP ist sp_rename
Syntax: sp_rename '[Tabellenname] .old_column_name', 'new_column_name'
Weitere Hilfe finden Sie in diesem Artikel: sp_rename von Microsoft Docs
Hinweis: Bei der Ausführung dieses SP gibt der SQL Server eine Warnmeldung aus : " Achtung: Das Ändern eines Teils eines Objektnamens kann Skripte und gespeicherte Prozeduren beschädigen." Dies ist nur wichtig, wenn Sie Ihren eigenen SP geschrieben haben, der die Spalte betrifft in der Tabelle werden Sie ändern.
quelle
Verbesserte Version von @Taher
quelle
Oder Sie können einfach zweimal langsam auf die Spalte in SQL Management Studio klicken und sie über die Benutzeroberfläche umbenennen ...
quelle
Abfrage ausführen:
quelle