-1

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

IF OBJECT_ID('tempdb..##TempLog') IS NULL
    CREATE TABLE ##TempLog(id INT, name NVARCHAR(max));

INSERT INTO ##TempLog (id, name) 
VALUES (1, 'Test')

当我这样做时,我得到一个错误

数据库中已经有一个名为“##TempLog”的对象

在 SQL Server 2014 中,但在 SQL Server 2016 中,一切正常。

4

2 回答 2

2

这将起作用:

IF OBJECT_ID('tempdb..##TempLog') IS NOT NULL
drop table ##TempLog
CREATE TABLE ##TempLog(id INT, name NVARCHAR(10));

INSERT INTO ##TempLog (id, name) 
VALUES (1, 'Test')

正如@Nick.McDermaid 所说,您还应该替换 NVARCHAR

在此处输入图像描述

但它也适用于 sql2012:

在此处输入图像描述

于 2017-11-12T08:33:52.740 回答
1

尝试这个

DROP TABLE IF EXISTS tempdb.dbo.##TempLog
CREATE TABLE ##TempLog
  (
   id INT, 
   name NVARCHAR(10)
  )

如果要使用现有表,请使用

IF OBJECT_ID('tempdb..##TempLog') IS NOT NULL
    Truncate TABLE #TempLog
else
    CREATE TABLE ##TempLog
    (
        id INT, 
        name NVARCHAR(10)
    )
于 2017-11-12T08:44:35.017 回答