sql >> Databasteknik >  >> RDS >> Sqlserver

Byta bordsägare

Det korrekta sättet att göra detta i SQL Server 2005 och senare är att sluta tänka på prefixet som en "ägare". sp_changeobjectowner förfarande har blivit utfasad sedan SQL Server 2005, och du bör istället använda schema DDL , t.ex.:

ALTER SCHEMA dbo TRANSFER [current_owner].tablename;

För att kontrollera den aktuella "ägaren" (detta kan returnera flera rader om du har mer än ett tablename i flera scheman):

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

Se också till att du stavar objektet korrekt. I en skiftlägeskänslig sortering, till exempel, TABLENAME och tablename är inte samma objekt, och att stava det med InCorrEcT Case kan också leda till det här felet.



  1. Beräkna antalet samtidiga händelser i SQL

  2. Hur tar jag bort en MySQL-databas?

  3. Hur lägger jag till en röst i min databas i ett formulär?

  4. Mät databasprestanda under press