Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

преименуване на временна таблица във физическа

Не.

Ако изпълнявате това от база данни, различна от tempdb получавате

Което не е изненадващо, тъй като всички страници с данни и т.н. са в tempdb файлове с данни, така че да не можете да преименувате това внезапно да стане постоянна таблица в друга база данни.

Ако изпълнявате това от tempdb получавате

Ако направите EXEC sp_helptext sp_rename и вижте дефиницията, съответният код, забраняващ това, е

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

Защо първо не създадете постоянна таблица, след което преименувате?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какъв е максималния брой колони, разрешени в SQL Server 2008 View?

  2. Как да променя тази t-sql заявка, за да върне максималната стойност за различни имена на колони?

  3. Добавяне на колона към всички потребителски таблици в t-sql

  4. Как да изпълня 32-битов SSIS пакет в 64-битов пакет?

  5. Какво е ISO_year в sql-сървър