Die SQL
Abfrage, die ich verwendet habe, ist:
ALTER TABLE oldtable RENAME TO newtable;
Aber es gibt mir einen Fehler.
Server: Nachricht 156, Ebene 15, Status 1, Zeile 1
Falsche Syntax in der Nähe des Schlüsselworts 'TO'.
sql-server
rename
alter-table
Schalter
quelle
quelle
.
, verwenden Sie[]
den Tabellennamen. (Ich weiß, ich weiß, aber Punkte können passieren ...) ZBsp_rename '[Stupid.name]', 'NewName'
oder mit Schemasp_rename '[dbo.Stupid.name]', 'NewName'
'NewName'
Feld ein, da Ihre Tabelle sonst möglicherweise so aussiehtdbo.dbo.NewName
.CREATE SYNONYM [schema].[synonymName] FOR [schema].[tableName]
So benennen Sie eine Spalte um:
So benennen Sie eine Tabelle um:
quelle
Wenn Sie sp_rename verwenden, das wie in den obigen Antworten funktioniert, überprüfen Sie auch, welche Objekte nach dem Umbenennen betroffen sind und auf diese Tabelle verweisen, da Sie diese ebenfalls ändern müssen
Ich habe hier in Pinal Daves Blog ein Codebeispiel für Tabellenabhängigkeiten genommen
Daher müssen auch alle diese abhängigen Objekte aktualisiert werden
Oder verwenden Sie ein Add-In, wenn Sie können. Einige von ihnen verfügen über Funktionen zum Umbenennen von Objekten, und alle hängen auch von Objekten ab
quelle
Wenn Sie versuchen,
exec sp_rename
einen LockMatchID-Fehler zu erhalten, kann es hilfreich sein, zuerst eine use [database] -Anweisung hinzuzufügen:Ich habe es versucht
Was ich tun musste, um das Problem zu beheben, war, es umzuschreiben auf:
quelle
Tabellenname
Säule
Index
auch für statik und datentypen verfügbar
quelle
Das benutze ich:
quelle
Von dem hier vorgeschlagenen hat nichts funktioniert. Also haben Sie die Daten einfach in eine neue Tabelle eingefügt
Vielleicht wird es für jemanden nützlich sein.
In meinem Fall erkannte es das neue Schema nicht und auch der dbo war der Besitzer.
Hat für mich gearbeitet. Ich fand es aus dem Skript, das beim Aktualisieren der PK für eine der Tabellen automatisch generiert wurde. Auf diese Weise wurde auch das neue Schema erkannt.
quelle
So ändern Sie einen Tabellennamen mit einem anderen Schema:
Beispiel: Ändern Sie dbo.MyTable1 in wrk.MyTable2
quelle