SQL Server存储过程INSERT INTO

时间:2018-10-29 18:42:49

标签: sql-server tsql sql-server-2014

我有一个存储过程,应该在该表存在的情况下将数据插入表中。该部分代码在ELSE BEGIN ... END语句中。我收到对象已存在的错误...

我的代码如下:

IF NOT EXISTS(SELECT TOP 1 * FROM SYSOBJECTS 
              WHERE name = 'smsdss.c_order_utilization_lihn_svc_w_order_dept_desc_bench' 
                AND xtype = 'U')
BEGIN
    CREATE TABLE SCHEMA.MY_TABLE ()
END
ELSE BEGIN
    DECLARE @TODAY_B DATE;
    DECLARE @START_B DATE;
    DECLARE @END_B   DATE;

    SET @TODAY_B = GETDATE();
    SET @START_B = DATEADD(YEAR, DATEDIFF(YEAR, 0, @TODAY_B) -1, 0);
    BLAH BLAH BLAH

    INSERT INTO SCHEMA.MY_TABLE
        SELECT 
            COLUMN_A,
            COLUMN_B, 
            ..... ,
            COLUMN_N
        FROM 
            #TEMP_B
        WHERE 
            ORDER_YEAR > (SELECT MAX(ZZZ.ORDER_YEAR) FROM SCHEMA.MY_TABLE)
END

2 个答案:

答案 0 :(得分:1)

该错误表明代码在sudo add-apt-repository ppa:ondrej/php 块内的CREATE TABLE脚本上失败,不是 IF。您的ELSE语句可能不正确。

您可以解决该问题或尝试改用此方法,然后仔细检查架构和表名

SELECT

答案 1 :(得分:0)

您也可以将 OBJECT_ID() 用作

IF OBJECT_ID('SCHEMA.MY_TABLE') IS NULL
BEGIN
  CREATE TABLE ...
END
  ELSE
    BEGIN
      INSERT ..
    END