sql清空表數據后重新添加數據存儲過程的示例
來源:易賢網 閱讀:1539 次 日期: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 --繼續(xù)循環(huán)的標志

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技術專欄

更多信息請查看數據庫

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網