Сценарий:
Вие работите за Mortgage Company като разработчик на SQL Server. Имате това изискване да подготвите SQL скрипт за пускане на схема. ИзползватеDrop Schema SchemeName
изявление в разработката на SQL Server Instance и се получава грешка по-долу.
Не може да се премахне схемата '', защото тя не съществува или нямате разрешение.
Какви биха били следващите ви стъпки?
Решение:
Може да има няколко причини за горната грешка. Първо, наистина нямате разрешение да изпуснете схемата. Проверихте с DBA и той потвърди, че имате всички разрешения да приемете тази промяна. Сега го разгледахте допълнително и забелязахте, че има обекти като таблици, изгледи и т.н., които използват тази схема.От тук можете да предложите две решения.
1) Изхвърлете всички обекти Свързано със схемата и след това махнете схемата (Възможно е да има сценарии, при които някой е използвал тази схема и обекти. Вече никой не трябва да използва схемата и свързаните с нея обекти. Така че ще обсъдите с вашия екип и ако те кажат, че подгответе скрипта за изхвърляне на обекти и схема. може да използва прозорците с детайли на Object Explorer за генериране на скриптове за пускане на обекти.
2) Искате да запазите обектите и да ги преместите в различна схема. Може би dbo или някаква нова схема. След прехвърляне обектите, които искате да изтриете схемата.
По-долу Query може да се използва за генериране на скрипт за прехвърляне на обекти.
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
Копирайте генерираните скриптове и след това стартирайте в база данни. След като сте готови, сега е добре да пуснете схемата, като използвате Drop Schema SchemaName Изявление.