zoukankan      html  css  js  c++  java
  • sql server存储过程实现批量删除

    在项目中用到了存储过程来进行批量删除的操作,给大家分享一下

    原理就是把id组成的字符串在数据库分割成数组放一张临时表,删除的时候与id进行对照

    --删除会员信息
    if OBJECT_ID('pro_DelUserInfo','p')is not null   --判断存储过程是否存在
        drop proc pro_DelUserInfo    --存在则删除
    go
    create proc pro_DelUserInfo(   --创建存储过程
    @strid varchar(max)  --参数  格式 "1,2,3,5,6"
    )
    as  
    declare @temp Table (a varchar(100))   --创建临时表
    begin
    
    --把参数@strid分割成int数组并插入临时表@temp
    Declare @i Int
    Set @strid = RTrim(LTrim(@strid))
    Set @i = CharIndex(',',@strid)
    While @i >= 1
    Begin
    Insert @temp Values(Left(@strid,@i-1))
    Set @strid = SubString(@strid,@i+1,Len(@strid)-@i)
    Set @i = CharIndex(',',@strid)
    End
    If @strid <> ''
    Insert @temp Values (@strid)     --插入临时表
    
    
    delete tbl_User where id in (select * from @temp)  --执行为删除操作 通过id与临时表中的int数组对照
    
    end


    当然如果有多个表使用的话,也可以吧表名和唯一标示id写成参数操作

  • 相关阅读:
    Web 跨域请求(OCRS) 前端解决方案
    接口与抽象
    观察者模式
    建造者模式(Builder)
    外观设计模式 (Facade)
    模板方法模式( TemplateMethod)
    原型模式(ProtoType)
    简单工厂法( Factory Method)
    backup与recover
    Oracle自动备份脚本的实现
  • 原文地址:https://www.cnblogs.com/net-god/p/5731855.html
Copyright © 2011-2022 走看看