INSERT OPENQUERY插入两行

时间:2016-02-18 14:19:10

标签: mysql stored-procedures linked-server

我在MS SQL服务器中链接了MySQL服务器,我试图找到将数据插入MySQL表的最佳方法。

我尝试使用OPENQUERY SQL表值函数,我编写下一个代码来调用调用MySQL程序的MSSQL存储过程:

SELECT
        *
FROM OPENQUERY(LINKEDSERVERNAME, 'Call db.procTest(''11111'');')

我的proc定义是:

CREATE DEFINER=`root`@`%` PROCEDURE `procTest`(
    IN testStr varchar(20))
BEGIN

    declare ProcessedParam enum('false', 'true');

    insert into db1.table1(ReceivingDateTime, Number, CNumber, TextD, Recipient, Processed, NewService)
    values(now(), '1122', '0000', '11111', '0001', 'false', 1);

    select 1;
END

更糟糕的是,我将参数值传递给过程调用,MySQL proc接受该参数,但不对它做任何事情。

执行此代码后,在db1.table1中我找到了两行相同的行,其中 ReceivingDateTime 值相同。

如果我直接从MySQL Workbench查询编辑器执行 procTest ,它只会插入一行。 表1 没有任何触发器。

0 个答案:

没有答案