OBJECT_ID DROP #TEMP表 - 一次多个表SQL SERVER

时间:2015-06-05 16:36:31

标签: sql sql-server

我有一个关于删除临时表的问题:

IF OBJECT_ID('dbo.#Scores', 'U') IS NOT NULL
  DROP TABLE dbo.#Scores

我有超过8种不同的#temp表。有没有办法编写上面的代码来包含所有这些临时表,而不必编写7个表的代码:

IF OBJECT_ID('dbo.#Scores1', 'U') IS NOT NULL
      DROP TABLE dbo.#Scores1

IF OBJECT_ID('dbo.#Scores2', 'U') IS NOT NULL
          DROP TABLE dbo.#Scores2

IF OBJECT_ID('dbo.#Scores3', 'U') IS NOT NULL
          DROP TABLE dbo.#Scores4

IF OBJECT_ID('dbo.#Scores1', 'U') IS NOT NULL
          DROP TABLE dbo.#Scores4

有没有办法在4行代码中包含所有#temp表?

1 个答案:

答案 0 :(得分:0)

您可以在DROP TABLE语句中包含多个表。

这将删除所有存在的内容并为任何不存在的内容引发错误。

如果您不希望报告这些错误,则需要使用try..catch。

BEGIN TRY
      DROP TABLE #Scores1,
                 #Scores2,
                 #Scores3,
                 #Scores4,
                 #Scores5,
                 #Scores6,
                 #Scores7,
                 #Scores8
END TRY
BEGIN CATCH

END CATCH