Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在包装存储过程(SQL APS/PDW)中删除临时表_Sql_Sql Server_Stored Procedures - Fatal编程技术网

在包装存储过程(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。

临时表是否以#或##开头?或者你有真正的表,你称之为临时表。如果有以#开头的范围有限的临时表,则不应出现此问题,因为当进程超出范围时,这些临时表将被删除。请同时提供错误消息的文本。您的临时表是否以#或##开头?或者你有真正的表,你称之为临时表。如果有以#开头的范围有限的临时表,则不应出现此问题,因为当进程超出范围时,这些临时表将被删除。请同时提供错误消息的文本。