重命名临时表时出错

Clo*_*eto 6 sql-server sql-server-2008-r2

是否可以重命名临时表?

create table #t (id integer);
execute tempdb.sys.sp_rename '#t', '#s';

An invalid parameter or option was specified for procedure 'sys.sp_rename'
Run Code Online (Sandbox Code Playgroud)

@Michel提出的解决方案,插入另一个临时表并删除原始的,但我觉得它有多贵.

Mic*_*eim 6

Tempdb没有sp_rename过程.你可以做的是用你的旧内容创建一个新的temptable

像这样的东西

select * into #NewName from #OldName
drop table #OldName
Run Code Online (Sandbox Code Playgroud)

  • `tempdb`确实有`sp_rename`过程.这可以在所有数据库中访问.它专门编码为引发`#temp`对象的错误. (5认同)
  • 选择一个新表似乎是有目的的。如果您已经将数据存储在表中,而只需要使用该表数据或使用其他名称引用它,则需要重新插入/重新索引数据。疯。就像无法在SQL中通过引用来引用表一样。然后,我们要解决的一个问题是重命名临时表。并且它们坚持特殊的逻辑为它们抛出错误?wth。 (2认同)