我在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 没有任何触发器。