Ошибка, пытающаяся удалить схему учетной записи пользователя базы данных

Я пытаюсь удалить схему пользователя из базы данных, и я получаю следующую ошибку:

TITLE: Microsoft SQL Server Management Studio
------------------------------

Drop failed for Schema 'ext_owner'.  (Microsoft.SqlServer.Smo)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.4035.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Drop+Schema&LinkId=20476

------------------------------
ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

Cannot drop schema 'ext_owner' because it is being referenced by object 'getroles'. (Microsoft SQL Server, Error: 3729)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.4035&EvtSrc=MSSQLServer&EvtID=3729&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

Что getroles является объектом?

Как я избавляюсь от ссылки, таким образом, я могу удалить старую учетную запись пользователя?

5
задан Jason 18 December 2009 в 16:53
поделиться

3 ответа

SELECT * FROM sys.objects 
WHERE name = 'getroles' 
AND schema_id = SCHEMA_ID('ext_owner');

Затем выполните:

DROP <object type> ext_owner.getroles;

- или

ALTER SCHEMA <some other schema> TRANSFER ext_owner.getroles;

Вероятно, вам придется повторить это несколько раз. Невозможно удалить непустую схему.

7
ответ дан 13 December 2019 в 19:28
поделиться

Попробуйте использовать:

SELECT * FROM sys.objects WHERE name = 'getroles'

Я предполагаю, что это функция или хранимая процедура, которую этот пользователь создал в своей собственной схеме (возможно, случайно. Отбросьте ее (если она не используется), и вы должно быть хорошо.

2
ответ дан 13 December 2019 в 19:28
поделиться

Вы можете запросить системную таблицу sys.objects , чтобы попытаться найти дополнительную информацию о том, какие могут быть роли getroles.

Попробуйте

SELECT * FROM sys.objects WHERE name LIKE '%getroles%'

Это должно дать вам некоторая информация о том, что это за объект. В этот момент вы можете либо отбросить его, либо решить изменить схему, чтобы на нее больше не ссылались.

2
ответ дан 13 December 2019 в 19:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: