插入数据不存在的 table 时出错

Error inserting into a table where data does not exist

我向我的 SQL 服务器 table 添加了一个名为 Source 的新列。我想在存储过程中用 MP 填充该列,因为它在原始 table 中不存在。我以多种方式尝试了以下代码,但一直收到错误消息

Incorrect Syntax near 'MP'

我做错了什么?这以前有效,现在无效。由于原始数据库不在该服务器上,因此我必须执行一个开放式查询,直到我尝试添加此列之前它一直在工作。

CREATE PROCEDURE [dbo].[sp_AC_PRODUCT]
AS
BEGIN
    SET NOCOUNT ON;
    TRUNCATE TABLE [dbo].[AC_PRODUCT_]
    
    INSERT INTO [dbo].[ARIES_AC_PROPDUCT] (SOURCE, PROPNUM, P_DATE, OIL, GAS)
        SELECT 
            'MP' as SOURCE, PROPNUM, P_DATE, OIL, GAS
        FROM  
            OPENQUERY(ARLPSQL1, 'SELECT DISTINCT 'MP' PROPNUM, P_DATE, OIL, GAS)    
                                 FROM [ARLP_ARIES_MASTER].[dbo].[AC_PRODUCT]');
END
GO

您可以从 openquery 中删除 'mp',因为它是一个静态值:

CREATE PROCEDURE [dbo].[sp_AC_PRODUCT]
AS
    BEGIN
        SET NOCOUNT ON;
        TRUNCATE TABLE [dbo].[AC_PRODUCT_];

        INSERT INTO [dbo].[ARIES_AC_PROPDUCT]
            (
                SOURCE
                , PROPNUM
                , P_DATE
                , OIL
                , GAS
            )
        SELECT
            'MP' AS SOURCE
            , PROPNUM
            , P_DATE
            , OIL
            , GAS
        FROM
            OPENQUERY
                (ARLPSQL1, 'SELECT DISTINCT
                                 PROPNUM,
                                P_DATE,
                                OIL,
                                GAS)    
                            FROM [ARLP_ARIES_MASTER].[dbo].[AC_PRODUCT]'
                );
    END;
GO