使用儲存過程實現批量刪除

2022-02-25 22:09:09 字數 1306 閱讀 1609

儲存過程(sqlserver)

if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[delete_vehicle_data]') and objectproperty(id, n'isprocedure') = 1)

drop procedure [dbo].[delete_vehicle_data]

go --存在則刪除

gocreate procedure delete_vehicle_data(

@vehicleid varchar(max) --引數 格式 "1,2,3,5,6"

)as

declare @temp table (a varchar(100)) --建立臨時表

declare @ret as int

begin

--把引數@vehicleid分割成int陣列並插入臨時表@temp

declare @i int

set @vehicleid = rtrim(ltrim(@vehicleid))

set @i = charindex(',',@vehicleid)

while @i >= 1

begin

insert @temp values(left(@vehicleid,@i-1))

set @vehicleid = substring(@vehicleid,@i+1,len(@vehicleid)-@i)

set @i = charindex(',',@vehicleid)

endif @vehicleid <> ''

insert @temp values (@vehicleid) --插入臨時表

delete [車輛資料] where 編號 in (select * from @temp) --執行為刪除操作 通過id與臨時表中的int陣列對照

if @@rowcount>0

set @ret=1

else

set @ret=0

endreturn @ret

後台**使用 stringbuilder 拼接的,記得擷取字串最後乙個逗號

stringbuilder ids = new stringbuilder();

for (int i = 0; i {

呼叫刪除方法:deletedata(ids.tostring().substring(0, ids.length - 1))

sql server儲存過程實現批量刪除

在專案中用到了儲存過程來進行批量刪除的操作,給大家分享一下 原理就是把id組成的字串在資料庫分割成陣列放一張臨時表,刪除的時候與id進行對照 刪除會員資訊 ifobject id pro deluserinfo p is notnull 判斷儲存過程是否存在 drop proc pro deluse...

批量刪除儲存過程的儲存過程

create procedure dropprocedure as declare cur cursor read only for select name from sysobjects where xtype p and name like drop declare name varchar 4...

批量刪除的儲存過程

批量刪除的儲存過程 根據批量刪除的sql語句可以知道 delete table where id in id1,id2,id3,寫儲存過程 create proc up del id nvarchar 20 asdelete table where id in id 此時執行會報 訊息 245,級別...