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?