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

rinominare una tabella temporanea in una fisica

No.

Se lo stai eseguendo da un database diverso da tempdb ottieni

Il che non sorprende poiché tutte le pagine di dati ecc. si trovano nel tempdb file di dati in modo da non essere in grado di rinominarlo per diventare improvvisamente una tabella permanente in un altro database.

Se lo stai eseguendo da tempdb ottieni

Se esegui EXEC sp_helptext sp_rename e guarda la definizione, il bit di codice rilevante che non consente questo è

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

Perché non dovresti creare una tabella permanente in primo luogo e poi rinominare?