Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ändern eines Tabellenbesitzers

Der richtige Weg, dies in SQL Server 2005 und höher zu tun, besteht darin, das Präfix nicht mehr als „Eigentümer“ zu betrachten. Der sp_changeobjectowner Verfahren ist seit SQL Server 2005 veraltet, und Sie sollten stattdessen Schema-DDL , z. B.:

ALTER SCHEMA dbo TRANSFER [current_owner].tablename;

Um den aktuellen "Eigentümer" zu überprüfen (dies kann mehrere Zeilen zurückgeben, wenn Sie mehr als einen tablename haben in mehreren Schemas):

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';

Stellen Sie außerdem sicher, dass Sie das Objekt richtig schreiben. Bei einer Sortierung mit Berücksichtigung der Groß-/Kleinschreibung, zum Beispiel TABLENAME und tablename sind nicht dasselbe Objekt, und die Schreibweise mit INCorrEcT Case könnte ebenfalls zu diesem Fehler führen.