首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CREATE TABLE返回引用sp_changeobjectowner和不存在的架构时出错

问CREATE TABLE返回引用sp_changeobjectowner和不存在的架构时出错
EN

Stack Overflow用户
提问于 2020-04-28 21:28:10
回答 1查看 18关注 0票数 0

对于MS Sql Server专家来说,这是一个小小的挑战...

我在SQL Server2008 R2服务器上有一个数据库。我已经为这个模式创建了一个名为MPP的模式和一些表。这些表最初是在默认的dbo模式中创建的,然后使用sp_changeobjectowner过程移动到新的模式中。然而,在我让它按我想要的方式工作之前,这些表被创建和删除了几次。

对于问题..。每当我现在创建一个新表时,无论是在默认的dbo模式中,还是在新模式中的每个表上都会收到一条错误消息,其中提到了sp_changeobjectowner过程中的错误:

代码语言:javascript
复制
CREATE TABLE dbo.test (d INT);

Msg 15001, Level 16, State 1, Procedure sp_changeobjectowner, Line 64
Object 'ASBJOR.TEST_TABELL' does not exist or is not a valid object for this operation.

有一个名为ASBJOR的数据库用户,但没有架构。如果我向MPP模式添加一个新表,错误消息的数量将会增加,并且其中一条消息会引用新的表。

我已经尝试在默认的dbo模式中创建一个新表,并使用ALTER schema MPP传输将其移动到MPP模式...命令,但错误消息中仍显示新的表。

我已经查看了sys.objects、sys.tables、sys.schemas和sys.database_principals表,但我没有发现任何错误。

您知道是什么原因导致此错误消息,或者我可以在数据库中查找更多核心详细信息吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-28 21:58:04

你永远不应该使用sp_changeobjectowner -它从2005年起就被弃用了。始终使用ALTER SCHEMA ... TRANSFER。

至于错误,请检查该数据库中是否有DDL触发器:

代码语言:javascript
复制
SELECT * FROM sys.triggers WHERE parent_class = 0;

然后检查这些触发器在做什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61481341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档