Ich habe eine Reihe von Tabellen von einem alten SQL-Server (2000) in meine 2008-Datenbank importiert. Allen importierten Tabellen wird mein Benutzername vorangestellt, zum Beispiel : jonathan.MovieData
. In der Tabelle wird properties
es jonathan
als Datenbankschema aufgeführt. Wenn ich gespeicherte Prozeduren schreibe, muss ich jetzt jonathan.
vor allen Tabellennamen einfügen, was verwirrend ist.
Wie ändere ich alle meine Tabellen auf dbo anstelle von jonathan?
Aktuelles Ergebnis: jonathan.MovieData
Erwünschtes Ergebnis: dbo.MovieData
sql
sql-server
database
sql-server-2008
schema
Jonathan Hall
quelle
quelle
[DOMAIN\user].[tableName]
. Im Allgemeinen werden in der SQL Server-Community die in Transact-SQL angegebenen Bezeichner verwendet ([
und]
). Vermeiden Sie dies, es"
sei denn , es gibt eine bestimmte Anforderung dafür.[
und]
, wie in jedem anderen Fall, wenn Sie einen SQL-Objektnamen präzisieren möchten.[domain\user123].TableName
.Sie können Folgendes ausführen, wodurch eine Reihe von ALTER sCHEMA-Anweisungen für alle Ihre Talbes generiert wird:
Anschließend müssen Sie die Anweisungen in Query Analyzer kopieren und ausführen.
Hier ist ein älteres Skript, das das auch für Sie erledigt, denke ich, indem Sie den Objektbesitzer ändern. Ich habe es 2008 noch nicht versucht.
Habe es von dieser Seite bekommen .
Es geht auch darum, dasselbe für gespeicherte Prozesse zu tun, wenn Sie dies benötigen.
quelle
sys.tables
stattdessen (eine Teilmenge von sys.objects) zu verwenden.Ref: ALTER SCHEMA
quelle
Verschieben Sie die Tabelle vom dbo-Schema nach MySchema:
Verschieben Sie die Tabelle von MySchema in das Dbo-Schema:
quelle
Ich habe dies gerade auf eine ähnliche Frage gestellt: Wie ändere ich in SQL Server 2005 das "Schema" einer Tabelle, ohne Daten zu verlieren?
Eine leichte Verbesserung der hervorragenden Antwort von sAeid ...
Ich habe eine Exec hinzugefügt, damit sich dieser Code selbst ausführt, und oben eine Union hinzugefügt, damit ich das Schema beider Tabellen UND gespeicherter Prozeduren ändern kann:
Auch ich musste einen Datenbankauszug wiederherstellen und stellte fest, dass das Schema nicht dbo war. Ich habe stundenlang versucht, Sql Server Management Studio- oder Visual Studio-Datenübertragungen zu erhalten, um das Zielschema zu ändern. Am Ende habe ich dies nur für das wiederhergestellte ausgeführt Dump auf dem neuen Server, um die Dinge so zu bekommen, wie ich es wollte.
quelle
Sie können Schemas mehrerer Datenbankobjekte wie in diesem Beitrag beschrieben stapelweise ändern:
So ändern Sie das Schema aller Tabellen, Ansichten und gespeicherten Prozeduren in MSSQL
quelle
Weg, es für eine individuelle Sache zu tun:
Schema ändern dbo transfer jonathan.MovieData
quelle
Ich hatte ein ähnliches Problem, aber mein Schema hatte einen Backslash. Fügen Sie in diesem Fall die Klammern um das Schema ein.
quelle
Öffnen Sie SQL Server als SA-Konto und klicken Sie nach den folgenden Abfragen auf eine neue Abfrage
Klicken Sie dann auf Ausführen. Das gesamte Schema wird auf das SA-Konto zurückgesetzt
quelle
ms-help: //MS.SQLCC.v9/MS.SQLSVR.v9.en/tsqlref9/html/0a760138-460e-410a-a3c1-d60af03bf2ed.htm
ALTER SCHEMA schemaname TRANSFER securable_name
quelle