【问题标题】:SQL SERVER ODBC to MYSQL twin records different?SQL SERVER ODBC to MYSQL twin记录不同?
【发布时间】:2015-03-06 21:04:11
【问题描述】:

我有一个 SQL Server 存储过程,其工作方式如下:

CREATE PROCEDURE [MyStoreProcedure]
(
    @manufacture_datetime DATETIME, 
    @string as varchar(4)
)
AS
    BEGIN

    .....
    insert into openquery([odbcsource],'select * from mytable') (manufacture_datetime,number) values (@manufacture_datetime,1)
    insert into openquery([odbcsource],'select * from mytable') (manufacture_datetime,number) values (@manufacture_datetime,2)
    .....

该程序在我几乎所有的服务器上都完美运行,但是我发现一个服务器偶尔会出现此插入结果:

    2015-01-06 11:49:40  1
    2015-01-06 11:49:39  2

有什么想法会导致这双记录有 1 秒的差异吗?到目前为止,我认为也许毫秒级的事情正在搞砸一些事情,但这似乎是一个漫长的过程。

【问题讨论】:

    标签: mysql sql-server odbc


    【解决方案1】:

    这是奇怪的行为,是否有可能在 MySQL 端有一些触发器将 manufacture_datetime 设置为当前时间?您是否尝试通过一个插入而不是两个插入来插入它?

     insert into openquery([odbcsource],'select * from mytable') (
         manufacture_datetime,number
     )
     select
         @manufacture_datetime, v.number
     from (values (1), (2)) as v(number)
    

    【讨论】:

    • 我没有尝试过只使用一个插件,我一定会尝试一下。在触发器上,时间戳变量实际上是在创建记录大约 30 秒时偏移的。而且桌子上没有触发器:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2016-11-29
    • 2018-05-04
    相关资源
    最近更新 更多