gpt4 book ai didi

java - 合并和匹配时查询给出错误 sql server

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:19 25 4
gpt4 key购买 nike

我有一个正在尝试测试的查询。如果查询在表中找到具有现有主键的数据,则应更新数据。如果没有,则插入到表中。

主键的类型为 int,在属性中我可以看到 Identity 设置为“True”,我认为这意味着如果插入主键,它将自动为主键设置新的 id。

MERGE INTO Test_table t
USING (SELECT 461232 ID,'Test1-data' Fascia FROM Test_table) s
ON (t.ID = s.ID)
WHEN MATCHED THEN
UPDATE SET t.Fascia = s.Fascia
WHEN NOT MATCHED THEN
INSERT (Fascia)
VALUES (s.Fascia);

这里的问题是此查询不起作用,并且它从不插入数据或更新。另外,查询已编译,我没有收到任何编译错误

我想要这个查询的原因也是因为我将使用 Java 准备好的语句来查询数据库,所以我假设我可以做到

SELECT ? ID,? Fascia FROM Test_table

这样我就可以用java中的set方法传递值。

如果我的查询有问题,请告诉我。

最佳答案

您正在从目标表中选择作为源。

合并之前,您需要删除FROM Test_table,或者在Test_table中至少有1行。

rextester 演示:http://rextester.com/XROJD28508

MERGE INTO Test_table t
USING (SELECT 461232 ID,'Test1-data' Fascia --FROM Test_table
) s
ON (t.ID = s.ID)
WHEN MATCHED THEN
UPDATE SET t.Fascia = s.Fascia
WHEN NOT MATCHED THEN
INSERT (Fascia)
VALUES (s.Fascia);

关于java - 合并和匹配时查询给出错误 sql server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42672316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com