Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Не може да се премахне схемата, защото тя не съществува или нямате разрешение. - SQL Server / TSQL урок, част 29

Сценарий:

Вие работите за 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 Изявление. 
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Дефиниране на връзка един към един в SQL Server

  2. Как да върнете изхода на съхранената процедура в променлива в sql сървър

  3. Как да възстановите база данни на SQL Server на Mac с помощта на SQL Operations Studio

  4. Какво представляват данни и информация и обеми данни

  5. Не може да се зареди SqlServerSpatial.dll