sql清空表数据后重新添加数据存储过程的示例
来源:易贤网 阅读:1431 次 日期:2014-05-12 14:36:52
温馨提示:易贤网小编为您整理了“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

更多信息请查看IT技术专栏

更多信息请查看数据库
由于各方面情况的不断调整与变化,易贤网提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:易贤网
云南网警报警专用图标