Benutzer mit den meisten Antworten
Probleme mit Alter Schema

Frage
-
Wenn ich über das Menü eine Tabelle im Schema dbo erstellt habe, muss ich sie manchmal hinterher ins richtige Schema verschieben.
ALTER SCHEMA schema1 TRANSFER dbo.tblTabelle
funktioniert nicht.
ALTER SCHEMA schema2 TRANSFER dbo.tblTabelle
funktioniert.
ALTER SCHEMA schema1 TRANSFER schema2.tblTabelle
dann wieder nicht.
Irgendwas scheint mit Schema1 nicht zu stimmen.
Beide Schemas gehören dbo und ich bin dbo.
Hat jemand eine Idee? Es ist etwas lästig aus der Tabelle ein Skript zu machen, dieses dann auch schema1 auszuführen und die Tabelle dann in dbo bzw. schema2 zu löschen. Aber es funktioniert.
Danke.
M. Fiedler
Antworten
-
Hat vielleicht jemand eine Idee an welcher Stelle ich ansetzen bzw. suchen muss, um die Sperre zu verhindern? Kann ja auch nicht die Lösung sein, dass ich die Benutzer abtelefonieren muss, wenn ich eine neue, noch nicht verknüpfte Tabelle ins Schema verschieben will.
Hallo,
das kannst Du z. B. mittels SQL Profiler herausfinden. Ein Beispiel dazu findest Du hier:
http://www.databasejournal.com/features/mssql/article.php/3887996/Determining-Object-Access-Using-SQL-Server-Profiler.htmUwe Ricken
MCITP Database Administrator 2005
MCITP Database Administrator 2008
MCITP Microsoft SQL Server 2008, Database Development
db Berater GmbH
http://www-db-berater.de- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 1. November 2012 12:29
Alle Antworten
-
Nein. Es kommt auch keine Fehlermeldung. Es passiert einfach gar nichts, bzw. die Sanduhr läuft. Ich hab sie auch schon mal lange laufen lassen (>10 min) und nichts ist passiert.
Ansonsten wird der Befehl ja sofort ausgeführt. Ist ja nix was lange dauert.
Grüße
M. Fiedler
-
Hallo M.
kannst Du mal das Script für das Schema1 posten?
Uwe Ricken
MCITP Database Administrator 2005
MCITP Database Administrator 2008
MCITP Microsoft SQL Server 2008, Database Development
db Berater GmbH
http://www-db-berater.de -
Naja, viel steht ja nicht drin in so einem Schema-Skript. Der Unterschied zum Schema2 ist, dass es eine Beschreibung gibt, aber das kann es doch wohl nicht sein, oder?
USE [DB1]
GO/****** Object: Schema [js] Script Date: 10/08/2012 15:12:29 ******/
CREATE SCHEMA [js] AUTHORIZATION [dbo]
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Allgemeine Objekte zu JS' , @level0type=N'SCHEMA',@level0name=N'js'
GO -
Hi,
Du hast dann in deinem eigentlichen Skript aber schon "js" anstelle von "schema1" geschrieben, oder?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Montag, 8. Oktober 2012 13:37
-
Ja, klar. Schema2 heisst in Wirklichkeit auch nicht Schema2 ;-)
Ich hab jetzt einfach mal die Beschreibung gelöscht. Danach funktionierte das Verschieben.
Hab dann die Beschreibung wieder eingefügt. Funktionierte immer noch.
Keine Ahnung was da los war, aber ich musste in den letzten Wochen schon mehrfach den Umweg über das Create-Table-Skript nehmen und hatte einfach die Nase voll.
Manchmal hilft ja schon fragen ;-)
Danke fürs lesen!
Gruß
M. Fiedler
-
Ich habe das Problem jetzt doch identifizieren können.
Auf dem Schema liegt eine Sperre, wenn Benutzer über eine Access-Anwendung auf Objekte (Tabellen, Views, Prozeduren,Funktionen) des Schemas zugreifen. Dann kann auch die Beschreibung nicht entfernt werden und es kommt eine entsprechende Fehlermeldung. Die Anwendung greift auch auf Objekte in dbo zu, aber dieses Schema wird wohl nicht gesperrt.
Auf der gleichen DB, andere Schemas laufen andere Anwendungen, wodurch keine Sperre ausgelöst wird.
Hat vielleicht jemand eine Idee an welcher Stelle ich ansetzen bzw. suchen muss, um die Sperre zu verhindern? Kann ja auch nicht die Lösung sein, dass ich die Benutzer abtelefonieren muss, wenn ich eine neue, noch nicht verknüpfte Tabelle ins Schema verschieben will.
Danke
M. Fiedler
-
Hat vielleicht jemand eine Idee an welcher Stelle ich ansetzen bzw. suchen muss, um die Sperre zu verhindern? Kann ja auch nicht die Lösung sein, dass ich die Benutzer abtelefonieren muss, wenn ich eine neue, noch nicht verknüpfte Tabelle ins Schema verschieben will.
Hallo,
das kannst Du z. B. mittels SQL Profiler herausfinden. Ein Beispiel dazu findest Du hier:
http://www.databasejournal.com/features/mssql/article.php/3887996/Determining-Object-Access-Using-SQL-Server-Profiler.htmUwe Ricken
MCITP Database Administrator 2005
MCITP Database Administrator 2008
MCITP Microsoft SQL Server 2008, Database Development
db Berater GmbH
http://www-db-berater.de- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 1. November 2012 12:29
-
Hallo FiedlerM,
Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.Grüße,
RobertRobert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.