我正在尝试更改表的所有者:
sp_changeobjectowner 'OWNER.TABLENAME', 'dbo'
但是执行时我收到错误消息:
消息 15001,级别 16,状态 1,过程 sp_changeobjectowner,第 62 行
对象“OWNER.TABLENAME”不存在或不是有效对象
这个操作。
在 SQL Server 2005 及更高版本中执行此操作的正确方法是停止将前缀视为“所有者”。这sp_changeobjectowner程序 http://msdn.microsoft.com/en-us/library/ms177519%28v=sql.105%29.aspx自 SQL Server 2005 以来已被弃用,您应该使用模式DDL http://msdn.microsoft.com/en-us/library/ms173423%28v=sql.105%29.aspx, e.g.:
ALTER SCHEMA dbo TRANSFER [current_owner].tablename;
检查当前的“所有者”(如果您有多个行,这可能会返回多行)tablename
在多个模式中):
SELECT s.name
FROM sys.schemas AS s
INNER JOIN sys.tables AS t
ON s.[schema_id] = t.[schema_id]
WHERE t.name = N'tablename';
还要确保您正确拼写该对象。例如,在区分大小写的排序规则中,TABLENAME
and tablename
不是同一个对象,并且将其拼写为 InCorrEcT CaSe 也可能导致此错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)