gpt4 book ai didi

sql - 将临时表重命名为物理表

转载 作者:行者123 更新时间:2023-12-02 11:58:08 30 4
gpt4 key购买 nike

我可以做这样的事情吗?

create table #tbl_tmp (col1 int)

insert into #tbl_tmp select 3

exec sp_rename '#tbl_tmp','tbl_new'

最佳答案

没有。

如果您从 tempdb 以外的数据库运行此命令,您会得到

No item by the name of '#tbl_tmp' could be found in the current database ....

这并不奇怪,因为所有数据页等都在 tempdb 数据文件中,因此您无法将其重命名为突然成为其他数据库中的永久表。

如果您从 tempdb 运行它,您会得到

An invalid parameter or option was specified for procedure '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

为什么不首先创建一个永久表然后进行重命名?

关于sql - 将临时表重命名为物理表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7552550/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com