Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

đổi tên một bảng tạm thời thành một bảng vật lý

Không.

Nếu bạn đang chạy điều này từ cơ sở dữ liệu không phải là tempdb bạn nhận được

Điều này không có gì đáng ngạc nhiên vì tất cả các trang dữ liệu, v.v. đều nằm trong tempdb các tệp dữ liệu để bạn không thể đổi tên tệp này để đột nhiên trở thành một bảng vĩnh viễn trong cơ sở dữ liệu khác.

Nếu bạn đang chạy cái này từ tempdb bạn nhận được

Nếu bạn làm EXEC sp_helptext sp_rename và xem định nghĩa, bit mã có liên quan không cho phép điều này là

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

Tại sao bạn không tạo một bảng cố định ngay từ đầu sau đó đổi tên?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tạo dấu vết SQL để nắm bắt sự kiện máy chủ SQL

  2. Ngày định dạng máy chủ SQL DD.MM.YYYY HH:MM:SS

  3. XÓA hàng loạt trên SQL Server 2008 (Có bất kỳ điều gì giống như Sao chép hàng loạt (bcp) để xóa dữ liệu không?)

  4. Cách gọi thủ tục được lưu trữ với SQLAlchemy yêu cầu tham số Bảng kiểu do người dùng xác định

  5. Làm cách nào để bạn đặt tự động gửi trong một phiên SQL Server?