номер
Если вы запускаете это из базы данных, отличной от tempdb
, вы получите
Ни один элемент с именем '#tbl_tmp' не найден в текущем
база данных ....
Что неудивительно, поскольку все страницы данных и т. Д. Находятся в файлах данных tempdb
, поэтому вы не сможете переименовать это, чтобы внезапно стать постоянной таблицей в другой базе данных.
Если вы запускаете это с tempdb
, вы получите
Для процедуры указан недопустимый параметр или опция
'Sys.sp_rename'.
Если вы сделаете 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
Почему бы вам сначала не создать постоянную таблицу, а затем переименовать?