0

我正在尝试删除我的 SQL Server 数据库中的角色之一。我从角色中删除了所有成员,当我尝试删除角色时,我收到了以下错误消息:

Msg 15138, Level 16, State 1, Line 13
The database principal owns a schema in the database, and cannot be dropped.

有谁知道为什么?我检查了 Owned Schema,它只有自己名字的检查标志。

4

2 回答 2

2

您不能删除拥有架构的数据库主体。您必须先将架构所有权转移给其他数据库主体或删除架构,然后才能删除数据库主体。

于 2010-01-07T15:42:28.833 回答
2

15138 错误是由于您尝试删除的用户拥有架构。

如果您运行以下查询,您将获得用户拥有的架构。

USE DatabaseName; 
SELECT s.name
FROM sys.schemas s
WHERE s.principal_id = USER_ID('UserName');

假设它返回“db_denydatareader”模式。然后,您可以使用以下查询将该架构分配给默认用户“dbo”。

ALTER AUTHORIZATION ON SCHEMA::db_denydatareader TO dbo;
于 2016-05-17T22:03:54.443 回答