Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Changer le propriétaire d'une table

La bonne façon de procéder dans SQL Server 2005 et versions ultérieures est d'arrêter de considérer le préfixe comme un « propriétaire ». Le sp_changeobjectowner procédure est obsolète depuis SQL Server 2005, et vous devriez plutôt utiliser DDL de schéma , par exemple :

ALTER SCHEMA dbo TRANSFER [current_owner].tablename;

Pour vérifier le "propriétaire" actuel (ceci peut renvoyer plusieurs lignes si vous avez plus d'un tablename dans plusieurs schémas) :

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

Assurez-vous également que vous épelez correctement l'objet. Dans un classement sensible à la casse, par exemple, TABLENAME et tablename ne sont pas le même objet, et l'épeler avec InCorrEcT CaSe pourrait également conduire à cette erreur.