存储过程:数据库中已经有一个名为“#columntable”的对象

w00*_*977 2 sql t-sql sql-server

请看下面的代码:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE Test
AS
BEGIN
    begin
    select * into #dbreviews from dbreviews
    end

    drop table #dbreviews

    begin
    select * into #dbreviews from dbreviews
    end

END
GO
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

'#dbreviews'数据库中已经有一个命名的对象。

像这样的问题:数据库已经有一个名为“#columntable”的对象告诉我这应该是可能的。

rcs*_*rcs 5

根据 SQL Server 规范,这是不允许的。请参阅文档

如果在单个存储过程或批处理中创建了多个临时表,则它们必须具有不同的名称。

您正在创建两个具有相同名称的临时表#dbreviews。这是不允许的。