Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Modifica del proprietario di una tabella

Il modo corretto per eseguire questa operazione in SQL Server 2005 e versioni successive è smettere di pensare al prefisso come a un "proprietario". Il sp_changeobjectowner procedura è stato deprecato da SQL Server 2005 e dovresti invece usare schema DDL , ad esempio:

ALTER SCHEMA dbo TRANSFER [current_owner].tablename;

Per controllare l'attuale "proprietario" (questo potrebbe restituire più righe se hai più di un tablename in più schemi):

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

Assicurati anche di scrivere correttamente l'oggetto. In una confronto con distinzione tra maiuscole e minuscole, ad esempio, TABLENAME e tablename non sono lo stesso oggetto e anche l'ortografia con InCorrEcT CaSe potrebbe causare questo errore.