SQL Server 中的临时表导致“已经有一个名为”的对象错误

新手上路,请多包涵

我在 SQL Server 中有以下问题,我有一些看起来像这样的代码:

 DROP TABLE #TMPGUARDIAN
CREATE TABLE #TMPGUARDIAN(
LAST_NAME NVARCHAR(30),
FRST_NAME NVARCHAR(30))

SELECT LAST_NAME,FRST_NAME INTO #TMPGUARDIAN  FROM TBL_PEOPLE

当我这样做时,我得到一个错误’数据库中已经有一个名为’#TMPGUARDIAN’的对象’。谁能告诉我为什么我会收到这个错误?

原文由 Art F 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 465
2 个回答

您正在删除它,然后创建它,然后尝试使用 SELECT INTO 再次创建它。改成:

 DROP TABLE #TMPGUARDIAN
CREATE TABLE #TMPGUARDIAN(
LAST_NAME NVARCHAR(30),
FRST_NAME NVARCHAR(30))

INSERT INTO #TMPGUARDIAN
SELECT LAST_NAME,FRST_NAME
FROM TBL_PEOPLE

在 MS SQL Server 中,您可以使用 SELECT INTO 创建没有 CREATE TABLE 语句的表

原文由 Hart CO 发布,翻译遵循 CC BY-SA 3.0 许可协议

我发现我有同样的问题:

 DROP TABLE IF EXISTS #MyTempTable
CREATE TABLE #MyTempTable (
    MyTempTableID INT,
    OtherColID INT
);

但是我能够通过用 GO 分隔语句来解决它。

 DROP TABLE IF EXISTS #MyTempTable
GO
CREATE TABLE #MyTempTable (
    MyTempTableID INT,
    OtherColID INT
);

原文由 Scotty 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进