Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Alterando o proprietário de uma tabela


A maneira correta de fazer isso no SQL Server 2005 e superior é parar de pensar no prefixo como um "proprietário". O sp_changeobjectowner procedimento foi preterido desde o SQL Server 2005 e, em vez disso, você deve usar esquema DDL , por exemplo.:
ALTER SCHEMA dbo TRANSFER [current_owner].tablename;

Para verificar o "proprietário" atual (isso pode retornar várias linhas se você tiver mais de um tablename em vários esquemas):
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';

Certifique-se também de soletrar o objeto corretamente. Em um agrupamento que diferencia maiúsculas de minúsculas, por exemplo, TABLENAME e tablename não são o mesmo objeto, e soletrar com InCorrEcT CaSe também pode levar a esse erro.