Scenariusz:
Pracujesz dla Mortgage Company jako programista SQL Server. Masz to wymaganie, aby przygotować skrypt SQL do usunięcia schematu. UżywaszDrop Schema SchemeName
instrukcja w rozwojowej instancji SQL Server i otrzymanie poniżej błędu.
Nie można usunąć schematu '', ponieważ nie istnieje lub nie masz uprawnień.
Jakie byłyby Twoje następne kroki?
Rozwiązanie:
Przyczyn powyższego błędu może być kilka. Po pierwsze, naprawdę nie masz pozwolenia na porzucenie schematu. Skontaktowałeś się z DBA i potwierdził, że masz wszystkie uprawnienia do wprowadzenia tej zmiany. Teraz przyjrzałeś się temu dokładniej i zauważyłeś, że istnieją obiekty, takie jak tabele, widoki itp., które korzystają z tego schematu.Tutaj możesz zaproponować dwa rozwiązania.
1) Usuń wszystkie obiekty Powiązane ze schematem, a następnie upuść schemat (Mogą istnieć scenariusze, w których ktoś używał tego schematu i obiektów. Teraz nikt nie musi już używać schematu i obiektów z nim związanych. Więc porozmawiasz ze swoim zespołem i jeśli tak powie, przygotuj skrypt upuszczania obiektów i schematu. może używać okien szczegółów eksploratora obiektów do generowania skryptów upuszczania obiektów.
2) Chcesz zachować obiekty i przenieść je do innego schematu. Może dbo lub jakikolwiek nowy schemat. Po przeniesieniu obiekty, które chcesz usunąć schemat.
Poniżej zapytania można użyć do wygenerowania skryptu do przesyłania obiektów.
Declare @SourceSchema VARCHAR(100) Declare @DestinationSchema VARCHAR(100) SET @SourceSchema='TB' SET @DestinationSchema='dbo' Select 'Alter Schema ['+@DestinationSchema+'] Transfer '+@SourceSchema+'.['+name+']'
from sys.objects where schema_name(schema_id)=@SourceSchema
Skopiuj wygenerowane skrypty, a następnie uruchom w bazie danych. Po zakończeniu możesz teraz upuścić schemat za pomocą Drop Schema SchemaName Oświadczenie.