PDA

View Full Version : سوال: حذف چند رکورد به صورت هم زمان توسط پروسیجر



mahsab
دوشنبه 22 تیر 1394, 16:01 عصر
سلام من پروسیجر زیر رو برای حذف نوشتم که ورودیش یه رشته ای از id هاست مثل 1,50,10 که چند رکورد رو همزمان حذف کنه اما اور میده ؟؟؟؟؟؟؟




ALTER procedure [dbo].[Delete_Mrecord]
@id nvarchar(max)
as
delete from Mrecord
where MrecordId in (@id);

mahsab
سه شنبه 23 تیر 1394, 12:49 عصر
چطوووووور میشه چن تا رکورد رو همزمان حذف کررررررد ؟؟؟؟؟؟؟؟؟:متفکر::افسرده:

Davidd
سه شنبه 23 تیر 1394, 13:11 عصر
سلام. یه راهش اینه که کوئری به صورت پویا ساخته بشه :
declare @query as nvarchar(max)
set @query='delete from Mrecord where MrecordId in (';
set @query=@query+@id+')';
execute(@query);

Mahmoud.Afrad
سه شنبه 23 تیر 1394, 20:08 عصر
http://code.logos.com/blog/2008/10/passing_an_array_parameter_to_sql_server_stored_pr .html
function ای که در آدرس بالا داده شده رو ایجاد کنید به صورت زیر استفاده کنید

ALTER procedure [dbo].[Delete_Mrecord]
@id nvarchar(max)
as
delete from Mrecord
where MrecordId in (select splittext from dbo.fnSplit(@id , ','))