zoukankan      html  css  js  c++  java
  • sql清空表数据后重新添加数据存储过程

    ALTER PROCEDURE [dbo].[sp_add_Jurisdiction]
    @CTableName varchar(20), --当前要删除、新增的表
    @filedkeyValue varchar(20), --要删除的字段值
    @filedName varchar(20), --要删除的字段名
    @filedNameAdd1 varchar(20), --要新增的字段名1
    @filedNameAdd2 varchar(20), --要新增的字段名2
    @sql varchar(6000) --新增值字符串,如:25,30;25,31
    AS
    begin
    declare @strSQL_1 varchar(6000) -- 删除
    declare @strSQL_2 varchar(6000) -- 新增
    BEGIN try
    BEGIN TRANSACTION
    set @strSQL_1 = 'delete from ['+@CTableName+'] where '+@filedName+' = '+@filedkeyValue+''
    exec(@strSQL_1)

    DECLARE @Run bit --继续循环的标志
    declare @dotIndex as int
    declare @doIndex as int
    declare @strValue1 as varchar(100)
    declare @strValue2 as varchar(100)
    declare @strText as varchar(100)
    declare @ReturnValue int
    set @Run = 1
    set @ReturnValue=0;
    while( @Run = 1)
    begin
    if(len(@sql)>0) --如果字符串还不为空,则进行一下操作
    begin
    set @dotIndex=CharIndex(';',@sql)
    if(@dotIndex = 0) --判断是否找到了';'符号
    begin
    set @doIndex=CharIndex(',',@sql)
    set @strValue1 = substring(@sql,1,@doIndex-1)
    set @strValue2 = substring(@sql,@doIndex+1,LEN(@sql))
    set @strSQL_2 = 'insert into ['+@CTableName+'] ('+@filedName+','+@filedNameAdd1+','+@filedNameAdd2+') values ('+@filedkeyValue+','+@strValue1+','+@strValue2+')'
    exec(@strSQL_2);
    set @ReturnValue=@ReturnValue+1;
    set @Run=0
    end;
    else
    begin
    set @strText = substring(@sql,1,@dotIndex-1) --截取','前的字符串
    set @sql=substring(@sql,@dotIndex+1,len(@sql)) --把字符串的长度缩短至后一个
    set @doIndex=CharIndex(',',@strText)
    set @strValue1 = substring(@strText,1,@doIndex-1)
    set @strValue2 = substring(@strText,@doIndex+1,LEN(@strText))
    set @strSQL_2 = 'insert into ['+@CTableName+'] ('+@filedName+','+@filedNameAdd1+','+@filedNameAdd2+') values ('+@filedkeyValue+','+@strValue1+','+@strValue2+')'
    exec(@strSQL_2)
    set @ReturnValue=@ReturnValue+1;
    end
    end
    else
    begin
    set @Run=0
    set @ReturnValue=@ReturnValue+1;
    end
    end
    Commit Transaction
    return @ReturnValue;
    end try
    begin catch
    set @ReturnValue=0;
    Rollback Transaction
    return @ReturnValue;
    end catch
    end

  • 相关阅读:
    java spring boot 跳转
    了解什么是 redis 的雪崩、穿透和击穿
    小白学k8s(12)-k8s中PV和PVC理解
    小白学k8s(11)-k8s中Secret理解
    小白学k8s(10)-k8s中ConfigMap理解
    小白学k8s(9)-gitlab-runner实现go项目的自动化发布
    小白学k8s(8)-Bazel部署go应用
    记go中一次http超时引发的事故
    小白学k8s(7)helm[v3]使用了解
    小白学k8s(6)使用kubespray部署k8s
  • 原文地址:https://www.cnblogs.com/xiaojitui/p/3666721.html
Copyright © 2011-2022 走看看