Non.
Si vous l'exécutez à partir d'une base de données autre que tempdb
vous obtenez
Ce qui n'est pas surprenant car toutes les pages de données, etc. sont dans le tempdb
fichiers de données afin que vous ne puissiez pas le renommer pour qu'il devienne soudainement une table permanente dans une autre base de données.
Si vous l'exécutez depuis tempdb
vous obtenez
Si vous faites EXEC sp_helptext sp_rename
et regardez la définition du morceau de code pertinent interdisant cela est
--------------------------------------------------------------------------
-------------------- 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
Pourquoi ne créeriez-vous pas simplement une table permanente en premier lieu, puis renommeriez-vous ?