【问题标题】:MERGE INTO DbVisualizer not worknig合并到 DbVisualizer 不工作
【发布时间】:2015-03-19 20:21:38
【问题描述】:

大家好,

我正在尝试使用 Merge INTO 从另一个类似 example here 的表中更新我的表:

MERGE INTO locations l USING new_locations n         
ON (l.customer_id = n.customer_id              
AND l.location_x = n.location_x 
AND             l.location_y = n.location_y)   
WHEN MATCHED THEN UPDATE SET location_count = l.location_count + n.location_count   
WHEN NOT MATCHED THEN INSERT (customer_id, location_x, location_y, location_count, location_name)        
VALUES (n.customer_id, n.location_x, n.location_y, n.location_count, n.location_name);

我正在使用 MSSQL 并通过 DbVisualizer 和 ODBC 连接进行连接。

当我运行命令时它状态:一般错误;

经过一番搜索,我找到了here 您必须在 VbVisualizer 中将这种格式用于 Mere into:

@delimiter %%;
MERGE x AS y<code here>
;
@delimiter ;%% 

当我这样做时,程序会挂起:解析脚本。 我尝试更改 DbVisualizer 的默认语句分隔符,但仍然没有运气

/****************************************编辑********** ******************/

如果我删除了,我得到了

09:27:46  [MERGE - 0 row(s), 0.000 secs]  [Error Code: 10713, SQL State: 37000]  [Microsoft][ODBC SQL Server Driver][SQL Server]A MERGE statement must be terminated by a semi-colon (;).

如果我使用工具属性语句分隔符并将 (;) 替换为 GO,则会收到以下错误

09:29:24  [MERGE - 0 row(s), 0.000 secs]  [Error Code: 0, SQL State: S1000]  General error

/************************************结束编辑 ************* ***************/

你能帮帮我吗? 谢谢

【问题讨论】:

    标签: sql-server merge dbvisualizer


    【解决方案1】:

    似乎因为 Merge 是一个事务/SQL 查询,它需要多行来提交 DB 可视化工具在免费版本中不允许的事务:(

    希望我能找到替代方案。

    【讨论】:

    • 使用 DbVisualizer Free 执行 MERGE 命令应该没有问题。你能分享一下你得到的确切错误吗?
    • @roger 感谢您的回复,我编辑了帖子以添加您要求的信息。
    • 我建议您放弃 JDBC-ODBC 驱动程序,而使用捆绑的 jTDS 驱动程序。最简单的方法是打开工具->连接向导并设置连接。在驱动程序窗格中选择 SQL Server (jTDS)。
    • 我不能公司规则:(
    • 如果有纯 JDBC 驱动可用,一般不推荐使用 JDBC-ODBC 桥驱动。 Java 8 中也删除了 JDBC-ODBC 驱动程序,这应该是贵公司修改其政策的充分理由。
    猜你喜欢
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    • 2011-02-23
    • 1970-01-01
    相关资源
    最近更新 更多