Ta bort många records via SP

Databaser & SQL

3 svar · 217 visningar · startad av Stuck

Medlem sedan juli 200072 inlägg
Trådstart#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.

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