如何更新 SQL 表逻辑

2023-12-02

我有一个表结构为,

Table 3

Fruit ID -  Foreign Key  (Primary Key of Table 1)
Crate ID -  Foreign Key  (Primary Key of Table 2)

现在我需要执行一个查询,

Update Crate ID of Fruit ID if Fruit ID 已经在表中,如果没有则将记录插入表3中作为新记录。

这就是我现在在代码中得到的,

private void RelateFuirtWithCrates(List<string> selectedFruitIDs, int selectedCrateID)
{

   string insertStatement = "INSERT INTO Fruit_Crate(FruitID, CrateID) Values " +
        "(@FruitID, @CrateID);";  ?? I don't think if it's right query

        using (SqlConnection connection = new SqlConnection(ConnectionString()))
        using (SqlCommand cmd = new SqlCommand(insertStatement, connection))
        {
            connection.Open();
            cmd.Parameters.Add(new SqlParameter("@FruitID", ????? Not sure what goes in here));
            cmd.Parameters.Add(new SqlParameter("@CrateID",selectedCrateID));        
}

您可以使用以下命令进行“upsert”MERGESQL Server 中的语法:

MERGE [SomeTable] AS target
USING (SELECT @FruitID, @CrateID) AS source (FruitID, CrateID)
ON (target.FruitID = source.FruitID)
WHEN MATCHED THEN 
    UPDATE SET CrateID = source.CrateID
WHEN NOT MATCHED THEN   
    INSERT (FruitID, CrateID)
    VALUES (source.FruitID, source.CrateID);

否则,您可以使用类似以下内容:

update [SomeTable] set CrateID = @CrateID where FruitID = @FruitID
if @@rowcount = 0
    insert [SomeTable] (FruitID, CrateID) values (@FruitID, @CrateID)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更新 SQL 表逻辑 的相关文章

  • 何时对向量进行归一化?

    我正在学习 XNA 并且在几乎所有的教育套件中都可以找到http creators xna com en US http creators xna com en US 我总是看到向量上对 Normalize 的调用 我知道归一化基本上将向量
  • C/C++ 中随机数生成器的实现[重复]

    这个问题在这里已经有答案了 我对 C 中随机数生成器的实现有点困惑 它也与 C 中的明显不同 如果我理解正确 对 srand seed 的调用会以某种方式初始化可通过 rand 访问的隐藏变量 种子 该变量又将函数指向预先生成的序列 例如例
  • 将语句插入 SQL Server 数据库

    最近几天我试图找到这个错误 但没有成功 我正在尝试在数据库中插入一个新行 一切都很顺利 没有错误 也没有程序崩溃 My INSERT声明如下 INSERT INTO Polozaj Znesek Uporabnik Cas Kupec Po
  • CMake 警告:无法为目标生成安全的链接器搜索路径

    在为 pcl 项目运行 CMake 时 我收到一条警告消息 Configuring done CMake Warning at CMakeLists txt 12 add executable Cannot generate a safe
  • 未定义异常变量时通过引用捕获

    捕获异常时 标准指导是按值抛出 按引用捕获 据我了解 这有两个原因 如果由于内存不足异常而引发异常 我们将不会调用可能终止程序的复制构造函数 如果异常是继承层次结构的一部分 我们可能会对异常进行对象切片 如果我们有一个场景 我们没有在 ca
  • Windows 程序如何临时更改其时区?

    我写了一个函数来返回time t与给定日期的午夜相对应的值 当给定日期没有午夜时 它返回最早可用的时间 例如 当埃及进入夏令时时 这种情况就可能发生 今年 时间更改于 4 月 29 日晚上午夜生效 因此时钟直接从 23 59 转到 01 0
  • Type_traits *_v 变量模板实用程序顺序无法编译

    看过了这个答案 https stackoverflow com a 31763111 7151494 我试图想出一个变量模板从中获取代码的实用程序 template
  • 如何在 Elixir 的 Ecto 查询中使用“case-when”?

    我有一个 SQL 查询 例如 SELECT SUM CASE WHEN
  • 使用 Microsoft Graph 创建用户

    如何使用 Microsoft graph 创建用户 因为我在保存过程中遇到了权限失败的问题 我确实有几个问题 在图中调用创建用户 API 将在哪里创建用户 是在 Azure AD 还是其他地方 我尝试通过传递 json 和必需的标头来调用创
  • ASP MVC 5 - 403 customError 不起作用

    我正在尝试为我的应用程序创建自定义错误页面 它在大部分情况下都有效 但不适用于403 errors 我的网络配置
  • 从 ef core 的子集合中删除一些项目

    我有一个父表和子表 其中父表与子表具有一对多关系 我想删除一些子项 并且希望父项的子集合反映该更改 如果我使用删除选定的子项RemoveRange 那么子集合不会更新 如果我使用Remove从子集合中删除子集合然后 显然 它不如使用效率高R
  • 使用对象列表构建树

    我有一个带有属性 id 和parent id 的对象列表 我想建造一棵树来连接那些孩子和父母 1 个父对象可以有多个子对象 并且有一个对象将成为所有对象的祖先 实现该功能最快的算法是什么 我使用 C 作为编程语言 但其他语言也可以 像这样的
  • 使用 cudamalloc()。为什么是双指针?

    我目前正在浏览有关的教程示例http code google com p stanford cs193g sp2010 http code google com p stanford cs193g sp2010 学习CUDA 演示的代码 g
  • 打破条件变量死锁

    我遇到这样的情况 线程 1 正在等待条件变量 A 该变量应该由线程 2 唤醒 现在线程 2 正在等待条件变量 B 该变量应该由线程 1 唤醒 在我使用的场景中条件变量 我无法避免这样的死锁情况 我检测到循环 死锁 并终止死锁参与者的线程之一
  • .NET 的 HttpWebResponse 是否会自动解压缩 GZiped 和 Deflated 响应?

    我正在尝试执行一个接受压缩响应的请求 var request HttpWebRequest HttpWebRequest Create requestUri request Headers Add HttpRequestHeader Acc
  • 语义问题 Qt Creator:命名空间“std”中没有名为“cout”的成员

    我开始使用 Qt Creator 编写代码 对于 C 文件 我遇到很多语义问题 99 是 命名空间 yyy 中没有名为 xxx 的成员cpp文件构建 编译和输出没有问题 如果我点击例如cout 我已链接到 iostream 我是否需要在 Q
  • 如何返回调用不同数据库中的存储过程的远程数据库名称?

    我在一个 SQL Server 2008 R2 上有许多不同的数据库 为了便于论证 我们将它们称为 DB A DB B 和 DB C 我被要求开发一个将存在于 DB A 上的存储过程 该存储过程将用于删除和创建索引 并在 DB A 的表中存
  • C# - 命名空间内的类型声明

    在命名空间内而不是在类中声明类型的可能用途是什么 For ex namespace Test public delegate void Ispossible 这是有效的并且不会产生任何编译错误 但我无法想象为什么我们会以这种方式声明它而不是
  • Unity 2.0 和处理 IDisposable 类型(特别是使用 PerThreadLifetimeManager)

    我知道类似的问题被问过好几次 例如 here https stackoverflow com questions 987761 how do you reconcile idisposable and ioc here https stac
  • 如何在Linux上构建GLFW3项目?

    我已经使用 cmake 和 make 编译了 glfw3 和包含的示例 没有出现任何问题 开始编写我的第一个项目 作为 opengl 和 glfw 的新手 并且对 C 和 CMake 没有经验 我正在努力理解示例构建文件 甚至要链接哪些库和

随机推荐

  • Rmarkdown 中使用 apsrtable 的多个 lm() 模型表

    Goal 呈现使用创建的多个模型的结果lm 函数 一起放在一个格式良好的表格中 该表将在 Rmd 文件中生成并输出到 PDF 文档 建议的解决方案 In 使用 R 和 RStudio 进行可重复的研究 有一个例子使用apsrtable 并排
  • 为 java ejb Web 服务启用 https

    我正在使用 ejb 3 和 glassfish 3 1 1 开发一个网络服务 我正在使用 Netbeans 7 0 想知道如何为此 Web 服务在端口 8181 上启用 https 我不需要任何身份验证方法 只需通过 https 保护通信即
  • 使用 bootstrap 时模态不显示

    每当我按下按钮时 模式就不会显示 我尝试了很多事情 甚至创建了一个 custom js 来将此代码放入 myModal modal show 但就是不行 我哪里做错了 这是代码
  • 如何在 Inno Setup 中制作一个按钮或文本,单击时打开网页

    如何在 Inno Setup 安装程序中制作一个按钮或文本 单击时会打开一个网页 要打开网页 请使用 procedure OpenBrowser Url string var ErrorCode Integer begin ShellExe
  • 具有高级绘图函数的多个绘图,尤其是plot.rqs()

    我正在尝试并排绘制两个回归摘要和一个居中标题 每个回归摘要由以下方式生成plot rqs 总共有 9 个地块 我尝试过使用par mfrow c 1 2 已经 但正如我从 Paul Murrel 2006 的书中了解到的 高级函数如plot
  • 向 app.config 添加了新的应用程序设置,但 MSI 不会安装它(不会覆盖)

    我们最近向旧版 winforms 应用程序 Net 4 6 1 的 app config 日志服务器的 URL 添加了新的应用程序设置 不是用户设置 旧版本是 1 0 3 我们将所有程序集的版本更改为 1 0 4 并在安装项目 Visual
  • 我的 Android 应用程序在 Play 商店中显示与 Android 4.4.4 Moto E 不兼容

    我的 Android 应用程序在 Google Play 商店中显示与 Android 4 4 4 Moto E 不兼容 我尝试了很多方法 请问如何解决这个问题 你能帮我一下吗 提前致谢 如果您使用 Google Maps 那么为了支持 M
  • 您可以重命名“选项”标签吗? (Chrome 扩展)

    我试过这个 https developer chrome com extensions options html并制作了一个选项页面 因此 在我的扩展图标下添加了一个选项 名称为Option 我的问题是有没有办法重命名Option并改变它像
  • 将多个列表写入 csv Python

    我正在尝试编写一个将多个列表写入单个 csv 文件的函数 并且我能够获取要写入的列标题 但无法获取任何数据 我的数据位于与此类似的列表中 92 3801 2 22 4 第二个是 3 0 2 23 5 我正在寻找有关此的指导 谢谢你 impo
  • 如何编写批处理文件来切换网络适配器?

    在我的工作中 有一个可以连接的公司内部网 以及一个 Wifi 网络 但是 公司政策规定我们不能在一台计算机上同时连接到两个网络 不过 我需要在不同的时间使用任一网络 而我能够做到这一点的唯一方法是转到 控制面板 的 网络 部分中的 更改适配
  • 为什么 time.sleep 不能像打印结束参数一样工作?

    我正在尝试使用 time sleep 在打印语句之间暂停 import time def test print something end time sleep 1 print and end time sleep 1 print some
  • 使用淘汰赛根据下拉列表中选定的值隐藏/显示问题

    好吧 我是一个淘汰赛菜鸟 很难解决一个非常简单的问题 我有一个与淘汰的 observableArray 相关的下拉列表 还有一个与另一个 observableArray 相关的问题列表 问题应根据下拉列表的选定值隐藏 显示 在查看小提琴之前
  • R:具有特定变量范围的多元线性回归[重复]

    这个问题在这里已经有答案了 看起来很简单 但我不知道如何用 R 编写它 我有一个包含约 100 个变量的数据框 df 我想在作为我的第一个变量 Y 的响应和作为回归量的变量 25 到 60 之间进行多元回归 问题是我不想写每个变量名称 例如
  • 如何获取实时更新?

    我经常在 Facebook 上聊天 而且我越来越喜欢编码 所以我尝试创建一个聊天脚本 这里是 http wooflux co cc ChatSystem 1 1 ChatSystem 1 1 你试试看 但它只是一个测试版 因此还存在一些错误
  • 为什么这个 JPA 2.0 映射在 Eclipse/JBoss Tools 中给我一个错误?

    I have the following situation source kawoolutions com JPA 2 0 映射 仅考虑 Zip 和 ZipId 类可能就足够了 因为这似乎是错误的来源 Entity Table name
  • JSF + JSON:在 servlet 中输出“纯”文本?

    我正在尝试使用 Mootools 请求 JSON 与 JSF 一起 主要是因为我前段时间在 CakePHP 中编写了一个类似的应用程序 并且希望重用大部分 JS 部分 有什么办法可以返回吗纯文本 application json 使用来自无
  • Google 表单将“文件上传”文件重命名为“问题 - 提交者”

    我正在使用 Google 表单收集团队成员的图像 我想确保上传到 Google 表单并保存在 Google 云端硬盘中的每个文件都具有相同的命名约定 有五个上传文件要求团队成员上传图像的问题 这些文件被放置在 Google Drive 文件
  • 双倍改变一位

    我试图改变双精度中的一位 例如 双x 1 500912597这是 Binary 10111111 11111000 00000011 10111100 11101101 01100100 01001111 10010011 更改底层二进制代
  • ModSecurity:访问被拒绝,代码 403

    我已经为我的一台服务器启用了 mod 安全性 但是如果我提交带有 unicode 字符的表单 它会在日志中显示以下错误 并且不允许访问该网页 Wed May 192 168 0 1 2013 error client 192 168 0 1
  • 如何更新 SQL 表逻辑

    我有一个表结构为 Table 3 Fruit ID Foreign Key Primary Key of Table 1 Crate ID Foreign Key Primary Key of Table 2 现在我需要执行一个查询 Upd