sql >> Database >  >> RDS >> Sqlserver

een tijdelijke tafel hernoemen naar een fysieke

Nee.

Als u dit uitvoert vanuit een andere database dan tempdb je krijgt

Wat niet verwonderlijk is, aangezien alle gegevenspagina's enz. zich in de tempdb . bevinden gegevensbestanden, zodat u deze niet kunt hernoemen om plotseling een permanente tabel in een andere database te worden.

Als u dit uitvoert vanuit tempdb je krijgt

Als u EXEC sp_helptext sp_rename . doet en kijk naar de definitie het relevante stukje code dat dit niet toestaat is

--------------------------------------------------------------------------  
 --------------------  PHASE 32:  Temporay Table Isssue -------------------  
 --------------------------------------------------------------------------  
 -- Disallow renaming object to or from a temp name (starts with #)  
 if (@objtype = 'object' AND  
  (substring(@newname,1,1) = N'#' OR  
  substring(object_name(@objid),1,1) = N'#'))  
 begin  
  COMMIT TRANSACTION  
  raiserror(15600,-1,-1, 'sys.sp_rename')  
  return 1  
 end  

Waarom zou je niet eerst een permanente tafel maken en dan de naam wijzigen?



  1. MySqlException:Time-out verlopen - Toenemende time-out van verbinding heeft geen effect gehad

  2. Jooq LocalDateTime-velden gebruiken systeemtijdzone in plaats van sessietijdzone

  3. Mislukt bij productie/heroku:WHERE a.attrelid ='scholen'::regclass

  4. sql-query om verwijderde records op te halen