删除临时表

临时表必须具有唯一 ID(在会话中,对于本地临时表,或在服务器内,对于全局临时表)。尝试使用已存在的名称创建表将返回以下错误:

There is already an object named '#tempTable' in the database.

如果你的查询生成临时表,并且你希望多次运行它,则需要在尝试再次生成表之前删除它们。这个的基本语法是:

drop table #tempTable

尝试在表存在之前执行此语法(例如,在语法的第一次运行时)将导致另一个错误:

Cannot drop the table '#tempTable', because it does not exist or you do not have permission.

为避免这种情况,你可以在删除之前检查表是否已存在,如下所示:

IF OBJECT_ID ('tempdb..#tempTable', 'U') is not null DROP TABLE #tempTable