Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

zmiana nazwy tabeli tymczasowej na fizyczną

Nie.

Jeśli uruchamiasz to z bazy danych innej niż tempdb dostajesz

Co nie jest zaskakujące, ponieważ wszystkie strony danych itp. znajdują się w tempdb plików danych, więc nie będziesz w stanie zmienić nazwy, aby nagle stała się stałą tabelą w innej bazie danych.

Jeśli uruchamiasz to z tempdb dostajesz

Jeśli wykonasz EXEC sp_helptext sp_rename i spójrz na definicję, odpowiedni fragment kodu, który nie zezwala na to, to

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

Dlaczego po prostu nie utworzysz stałego stołu, a potem nie zmienisz nazwy?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Popraw escaping rozdzielanych identyfikatorów w SQL Server bez użycia QUOTENAME

  2. Jak utworzyć krok w moim zadaniu agenta programu SQL Server, który będzie uruchamiał mój pakiet SSIS?

  3. Indeks pełnotekstowy programu SQL Server

  4. Usuń konto pocztowe bazy danych w programie SQL Server (T-SQL)

  5. Dlaczego przesyłanie/konwertowanie z int zwraca gwiazdkę