对于MS Sql Server专家来说,这是一个小小的挑战...
我在SQL Server2008 R2服务器上有一个数据库。我已经为这个模式创建了一个名为MPP的模式和一些表。这些表最初是在默认的dbo模式中创建的,然后使用sp_changeobjectowner过程移动到新的模式中。然而,在我让它按我想要的方式工作之前,这些表被创建和删除了几次。
对于问题..。每当我现在创建一个新表时,无论是在默认的dbo模式中,还是在新模式中的每个表上都会收到一条错误消息,其中提到了sp_changeobjectowner过程中的错误:
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表,但我没有发现任何错误。
您知道是什么原因导致此错误消息,或者我可以在数据库中查找更多核心详细信息吗?
发布于 2020-04-28 21:58:04
你永远不应该使用sp_changeobjectowner -它从2005年起就被弃用了。始终使用ALTER SCHEMA ... TRANSFER。
至于错误,请检查该数据库中是否有DDL触发器:
SELECT * FROM sys.triggers WHERE parent_class = 0;然后检查这些触发器在做什么。
https://stackoverflow.com/questions/61481341
复制相似问题