当前位置: 移动技术网 > IT编程>数据库>MSSQL > sql清空表数据后重新添加数据存储过程的示例

sql清空表数据后重新添加数据存储过程的示例

2017年12月12日  | 移动技术网IT编程  | 我要评论

陆贞传奇49,不差钱字幕版,坦克高射机枪

复制代码 代码如下:

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网