いいえ
tempdb
以外のデータベースからこれを実行している場合 あなたが得る
すべてのデータ ページなどは tempdb
にあるため、これは驚くべきことではありません。 これを名前変更して突然他のデータベースの永久テーブルにすることはできません。
tempdb
からこれを実行している場合 あなたが得る
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
プレ> 最初に永久テーブルを作成してから名前を変更しないのはなぜですか?