2009-05-28 5 views
2

Ich habe eine Datenbank von einer Sicherung auf einem neuen Server wiederhergestellt, und ich kann das alte Schema nicht aus der Datenbank löschen. Ich habe einen neuen Benutzer für diese Datenbank erstellt. Der neue Benutzer wird anders benannt (um die Dinge für andere Entwickler klarer zu machen), so dass ich für dieses Schema keine Verwendung habe. Ich habe es geschafft, den Benutzer endgültig zu löschen, aber das Schema wird nicht verschwinden.SQL 2005 kann Benutzer nicht löschen

Der Fehler Ich erhalte „nicht-Schema fallen kann‚‘, weil es durch das Objekt referenziert wird‚‘

dieses Skript ausgeführt wird:

select * from sys.objects where schema_id = 5 

... zeigt alle Objekte dieses Schema besitzt‘ ‘.

Mein Problem ist, ich nicht einen Weg finden kann, das Eigentum an diesen Objekten zu ändern. Es gibt eine Art und Weise sein muss? Dank all

+0

War die Sicherung von einer SQL Server 2000-Serverinstallation - oder von einer anderen 2005-Installation? – dommer

+0

Ja, ich ziehe von SQL 2000 zu SQL 2005, also ist das Backup der Sorte SQL 2000, Umzug in SQL 2005-Umgebung – Kolten

Antwort

5

die Synta x Objekt Ding aus Schema Quelle Schema Ziel zu bewegen ist:

ALTER SCHEMA Destination TRANSFER Source.Thing 

Here's SQL ein Skript zu erzeugen, um alle Objekte zu DBO-Schema zu übertragen:

SELECT 'ALTER SCHEMA dbo TRANSFER ' + SCHEMA_NAME(schema_id) + '.' + name 
FROM sys.tables 
WHERE schema_id != SCHEMA_ID('dbo'); 

Um nur ein bestimmtes Schema zu übertragen:

+0

ALTER SCHEMA Ziel TRANSFER Source.Thing genau das, was ich gesucht habe - danke! – Kolten