在包装存储过程(SQL APS/PDW)中删除临时表
我创建了一个包含许多存储过程的存储过程,即包装过程 该过程未完成,因为包装过程中的不同存储过程之间存在同名的临时表 我需要找到一种方法来删除包装器中存储过程之间的所有临时表 或 使用常规命令删除包装器中每个存储过程末尾的所有临时表在包装存储过程(SQL APS/PDW)中删除临时表,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我创建了一个包含许多存储过程的存储过程,即包装过程 该过程未完成,因为包装过程中的不同存储过程之间存在同名的临时表 我需要找到一种方法来删除包装器中存储过程之间的所有临时表 或 使用常规命令删除包装器中每个存储过程末尾的所有临时表 环境是Microsoft SQL APS(PDW)这将为您提供临时表的列表。一旦您有了该列表,您就可以选择要创建的内容,并使用动态SQL逐个删除它们 select * from tempdb.sys.objects where type='U' 这应该会给你一个临时
环境是Microsoft SQL APS(PDW)这将为您提供临时表的列表。一旦您有了该列表,您就可以选择要创建的内容,并使用动态SQL逐个删除它们
select * from tempdb.sys.objects where type='U'
这应该会给你一个临时表的列表。一旦你有了这个列表,你就可以选择你要创建的内容,并使用动态sql逐个删除它们
select * from tempdb.sys.objects where type='U'
您可以这样做,在您的过程中检查它们,然后删除它们。如果其他过程正在创建和使用它们,但尚未完成,则这可能是危险的
If Object_ID('tempdb..#yourTempTable') Is Not Null
Drop Table #yourTempTable
或者,要生成拖放命令,可以使用以下命令:
Select 'Drop table tempdb..' + Name From tempdb.sys.objects where type = 'U' and is_ms_shipped = 0
您可以这样做,在您的过程中检查它们,然后删除它们。如果其他过程正在创建和使用它们,但尚未完成,则这可能是危险的
If Object_ID('tempdb..#yourTempTable') Is Not Null
Drop Table #yourTempTable
或者,要生成拖放命令,可以使用以下命令:
Select 'Drop table tempdb..' + Name From tempdb.sys.objects where type = 'U' and is_ms_shipped = 0
您误解了错误消息,不管它们是什么。我做了以下几件事。请注意,sp1和sp2都创建了一个名为#t1的表 现在是大考验。这个
exec sp3
返回两行,值分别为1和2。您误解了错误消息,不管它们是什么。我做了以下几件事。请注意,sp1和sp2都创建了一个名为#t1的表 现在是大考验。这个
exec sp3
返回两行,值分别为1和2。临时表是否以#或##开头?或者你有真正的表,你称之为临时表。如果有以#开头的范围有限的临时表,则不应出现此问题,因为当进程超出范围时,这些临时表将被删除。请同时提供错误消息的文本。您的临时表是否以#或##开头?或者你有真正的表,你称之为临时表。如果有以#开头的范围有限的临时表,则不应出现此问题,因为当进程超出范围时,这些临时表将被删除。请同时提供错误消息的文本。