| 

.NET C# Java Javascript Exception

6
Ich habe eine Datenbank, bei der beim anlegen der falsche Datenbankuser aktiv war und deshalb habe ich nun das Problem, dass die Tabellen und die Views der Datenbank allesamt nicht mit dbo.tabellenname bzw. dbo.viewname sondern mit xyz.tabellenname erstellt wurden.
Die Tabellen konnte ich nun mithilfe des Befehls:
EXEC sp_MSforeachtable @command1="print '?' ALTER SCHEMA dbo TRANSFER ?"
umbenennen. Jetzt habe ich aber noch das Problem, dass ich die Views umbenennen muß. Wie lautet hier der richtige Befehl unter SQL Server 2005?
10.11.2011
Maverick 53 2
2 Antworten
1
Schau mal, ob dir MSDN: ALTER AUTHORIZATION (Transact-SQL) weiterhilft:
B. Transferring ownership of a view to the schema owner

The following example transfers ownership the view ProductionView06 to the owner of the schema that contains it. The view is located inside schema Production.

ALTER AUTHORIZATION ON OBJECT::Production.ProductionView06 TO SCHEMA OWNER;
GO
10.11.2011
Jürgen Luhr 6,9k 1 8
0
Ich habe es jetzt anderweitig gelöst.
Folgendes Skript gibt die Befehlszeilen für die jeweiligen Views aus:
SELECT 'ALTER SCHEMA dbo TRANSFER ' + s.Name + '.' + p.Name FROM sys.Views p INNER JOIN sys.Schemas s on p.schema_id = s.schema_id WHERE s.Name = 'viewbesitzer'

Wenn man dann die einzelnen Befehlszeilen kopiert und ausführt, funktioniert es. Hat jemand eine Idee, wie man das ganze automatisieren kann? Ich hatte jetzt nur 5 Views, das ging ohne Probleme mit copy and paste, aber bei mehreren Views wird das etwas mühsam....
10.11.2011
Maverick 53 2

Stelle deine Sql-server-2005-Frage jetzt!