webForumDet fria alternativet

Ta bort många records via SP

Databaser & SQL

3 svar · 211 visningar · startad av Stuck

Medlem sedan juli 200072 inlägg
Frågan#1

Jag tänkte bygga en stored procedure där jag skickar in en coma separerad sträng som ni kan se nedan.

När jag kör satsen som den ser ut nu så får jag fel att den inte kan konvertera från varchar till en int. privMessageID är en int och jag kan väl förstå det felmeddelandet.

Jag har testat att köra str() på privMessageID men då verkar inte gemförelsen fungera ordentligt, den blir inga fel messs men den tar inte bort nånting.

Nån som gjort nåt sånt här och vet nån sjusst sätt att göra det på?

declare @ids varchar(100)
Set @ids = '1,2,3'
DELETE FROM swe_tPrivMessage
WHERE privMessageID IN (@ids)

Medlem sedan sep. 20011 914 inlägg
#2

red/ tänkte fel sorry

Medlem sedan juli 200072 inlägg
#3

Ok :)

Medlem sedan dec. 200012 464 inlägg
#4
exec ('DELETE FROM swe_tPrivMessage
WHERE privMessageID IN (' + @ids + ')'

eller så kan du använda en funktion som returnerar en tabellvariabel som du kan göra join med.

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)