sql - 存储过程 : There is already an object named '#columntable' in the database

标签 sql sql-server tsql

请看下面的代码:

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

我得到的错误是:

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

这样的问题:There is already an object named '#columntable' in the database告诉我这应该是可能的。

最佳答案

根据 SQL Server 规范,这是不允许的。请引用documentation .

If more than one temporary table is created inside a single stored procedure or batch, they must have different names.

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

关于sql - 存储过程 : There is already an object named '#columntable' in the database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42132643/

相关文章:

sql - 如何修复 SQL Server 2005 中 'LOGIN' 附近的错误语法

MySQL 从第二张表中按点排序

sql - 在表中查找重复项

c# - 为什么 OleDb ExecuteScalar 方法在查询 COUNT 时返回 Decimal?

sql - TSQL 多列唯一约束也允许多个 Null

SQL-EX.ru 查询问题集 #32

sql - 允许查看 DML 的 Oracle 触发器

c# - Azure SQL 数据库透明数据加密 (TDE) + 始终加密安全吗?

sql-server - 如何理解SQL Server中的Principal?

sql-server - SQL Server 2019 忽略 WHERE 子句?