Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Umbenennen einer temporären Tabelle in eine physische

Nein.

Wenn Sie dies von einer anderen Datenbank als tempdb ausführen Sie erhalten

Was nicht verwundert, da alle Datenseiten etc. in der tempdb liegen data-Dateien, sodass Sie diese nicht umbenennen könnten, um plötzlich eine permanente Tabelle in einer anderen Datenbank zu werden.

Wenn Sie dies von tempdb aus ausführen Sie erhalten

Wenn Sie EXEC sp_helptext sp_rename ausführen und schauen Sie sich die Definition an, das relevante Codebit, das dies verbietet, ist

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

Warum würden Sie nicht gleich eine permanente Tabelle erstellen und dann umbenennen?