检查记录是否存在,如果存在则“更新”,如果不存在“插入”

2024-03-13

我想查表PREMIUM_SERVICE_USER如果存在任何记录strClientID update timeValid如果没有记录则+30strClientID插入到premium_service_user table.

我究竟做错了什么?

它增加了timeValid+30 天,但也插入另一行。

SELECT @pre_var = count(*) 
FROM PREMIUM_SERVICE_USER 
WHERE strClientID = @strClientID

/* bronze premium - 200 cash */
IF @Premium = 1
BEGIN
    INSERT INTO PREMIUM_SERVICE_USER 
        (strClientID, timeReg, timeValid, bCurrent, durum) 
    VALUES 
        (@strClientID,getdate(),getdate() + 30,'1','1')

    UPDATE TB_USER 
    SET cash = cash+200 
    WHERE strAccountID = @strClientID
END

IF @Premium = 1 AND @pre_var = 1
BEGIN
    UPDATE PREMIUM_SERVICE_USER 
        SET timevalid = timevalid+30 where strClientID = @strClientID
    UPDATE PREMIUM_SERVICE_USER 
        SET bCurrent = 1 where strClientID = @strClientID
    UPDATE TB_USER 
        SET cash = cash+200 WHERE strAccountID = @strClientID
END

你的问题是运行第一个if不考虑的价值@pre_var.

这是一种稍微不同的方法,如果PREMIUM_SERVICE_USER很大。

if @Premium = 1
  begin
    if exists(Select 1 From PREMIUM_SERVICE_USER Where strClientID = @strClientID)
      BEGIN
        update PREMIUM_SERVICE_USER set timevalid = timevalid+30 where strClientID = @strClientID
        update PREMIUM_SERVICE_USER set bCurrent = 1 where strClientID = @strClientID
        UPDATE TB_USER SET cash = cash+200 WHERE strAccountID = @strClientID
       END
    ELSE
      BEGIN
        INSERT INTO PREMIUM_SERVICE_USER (strClientID, timeReg, timeValid, bCurrent, durum) VALUES (@strClientID,getdate(),getdate() + 30,'1','1')
        UPDATE TB_USER SET cash = cash+200 WHERE strAccountID = @strClientID
       END
  end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查记录是否存在,如果存在则“更新”,如果不存在“插入” 的相关文章

随机推荐

  • 根据插入时间从 std::map 中删除元素

    我需要根据插入时间 或其他比这更有效的方法 从 std map 中删除元素 该地图可能会包含数千个元素 如果我存储时间并迭代地图以检查每个元素的时间 那么最终可能会非常耗时 有谁知道如何在 std map 变老时删除它们 The std m
  • double 是否会使方程中的每个 int 都加倍?

    是否存在一种浮点数据类型 例如double 确保所有 等数学运算都假定双操作数 如果故事比这更复杂 是否有描述这些规则的资源 我是否应该不问这样的问题并始终明确地投射int to double当方程的结果是double 这是我正在考虑的一些
  • 首次加载时仅加载一次广告 (div)

    我想知道如何才能让一个 div 具有要加载的广告或仅在第一次加载页面时可见 但每次刷新页面时隐藏它 我只有用 Jquery 加载 div 的代码 但不知道刷新页面后如何隐藏它 document ready function referral
  • UINavigationBar自定义过渡动画

    我使用以下协议在视图控制器之间创建了自定义转换 UIViewControllerAnimatedTransitioning and UIViewControllerTransitioningDelegate 是否可以使用默认的UINavig
  • 是什么让这两个数组相加不同?

    我用它来获取用户输入并清理代码 我试图解决这个问题 然后代码停止工作 这有效 BindVar array BindVar Email BindVar pass 然而 这并没有 BindVar array Email pass 这是当我更改该
  • Flask-SQLAlchemy 小写索引 - 跳过功能,SQLAlchemy 反射不支持

    首先 如果这个问题已经得到解答 我深表歉意 但我在任何地方都找不到答案 我需要在 Flask SQLAlchemy 对象上定义一个小写索引 我遇到的问题是我需要将模型用户名和电子邮件字段存储为小写 以便我可以检查它们User query f
  • DI Singleton 实例与 Transient 实例

    几年前 IoC 性能指南指出 IoC 容器应仅用于解析长期实例 基本上是单例 而应使用单例工厂 由容器保存 创建瞬态类型对象 我现在正在阅读有关 ASP NET Core 的内容 我看到的几个示例对其注入的对象使用瞬态生命周期 现在瞬态是提
  • 如何在 Meteor 提供的服务器中设置环境变量?

    我想在远程服务器上测试流星谷歌分析包 设置 json public ga account UA dfgddhdh 5 在本地服务器中 我只是传入 settings选项 我在看http meteorpedia com read Environ
  • 如何在各种单独的文件中分离与特定模式匹配的文件名和内容

    我试图将与特定模式匹配的文件名分离到一个单独的文件中 并将其内容分离到与特定模式匹配的不同文件中 我的文件名包含特殊字符 如 我尝试使用 grep 命令 Grep Ril 和 Grep H 打印文件名 但它不起作用 bin bash cd
  • Flutter,后台获取包不工作,androidx 不兼容

    我想在应用程序未运行时进行一些操作 所以我决定使用后台提取包 我一步步按照android设置 这是我的 pubspec yaml 的一部分 version 1 0 0 1 environment sdk gt 2 1 0 lt 3 0 0
  • 在 C++ 中编写可移植动态可加载库的最简单方法是什么?

    我正在开发一个具有多个相似代码路径的项目 我想将其从主项目中分离到插件中 该项目必须保持跨平台兼容 并且我研究过的所有动态库加载 API 都是特定于平台的 创建一个无需额外修改代码即可在多个操作系统上编译和运行的动态库加载系统的最简单方法是
  • 如何使用卡图生成概述国家的世界地图

    我最近一直在看卡图仪 据我所知 我们使用 kartograph py 生成 svg 然后使用 kartograph js 中的 svg 在 Web 界面中渲染地图 我想生成这样的东西http kartograph org showcase
  • 自动加载类的父类是否调用 __autoload() ?

    In main php 添加自动加载并创建一个新对象 function autoload class require once class php t new Triangle side1 side2 side3 In Triangle p
  • python:改变“全局变量”以动态地将事物放入范围内

    这是多么可怕的想法 班级monad实施with将事物放入和超出范围的接口 因此我可以编写一个通用函数库 例如 m chain 引用函数unit and bind谁可以在运行时放入实现 所有这些代码的作用或它是否是一个好主意并不重要 我尝试过
  • 如何从应用程序(布局)XML 变量中获取清单版本号?

    我希望有一种方法可以在代码的主要部分引用项目的清单版本号 到目前为止 我一直在做的是将字符串 XML 文件中的版本号链接到清单 string Version 我想要做的是反过来 将字符串 XML 变量链接到清单中的版本 原因 我只想更改一个
  • iOS Webrtc - 捕获本地视频流时崩溃

    我正在尝试使用 Google 存储库中的 webrtc 库 我按照这些步骤创建了一个单独的项目 其中包含类似于 APPRTC 的说明和代码 并且我能够让它工作 我能够在两台设备之间进行会议 但是当我尝试与旧项目集成时 Webrtc 崩溃了
  • Android 中的 SYSCALL_INLINE

    我需要在 Android NDK 内部使用系统调用来防止包装函数的挂钩 在 Linux 中 有像 SYSCALL INLINE 这样的宏 它允许在没有包装函数的情况下使用系统调用 因此 宏将系统调用汇编代码直接嵌入到项目中 我在 Andro
  • 如何在CodeIgniter中实现Redis?

    我得到的教程是 http yaminnoor com redis codeigniter http yaminnoor com redis codeigniter https codeigniter com user guide libra
  • 使用 S3 作为静态网页和 EC2 作为 REST API 一起使用吗? (AWS)

    我发现这个链接讨论了将静态数据和 Web api 分离到静态 s3 Web 服务器以及用于 api 和 ec2 Web 服务器的 bean stalk 应用程序来创建网站 Charles 的回答是准确的 CORS 是解决两个域之间移动问题的
  • 检查记录是否存在,如果存在则“更新”,如果不存在“插入”

    我想查表PREMIUM SERVICE USER如果存在任何记录strClientID update timeValid如果没有记录则 30strClientID插入到premium service user table 我究竟做错了什么