Я предполагаю, что тип ProductId является целым числом. Вы можете использовать функцию следующим образом:
CREATE Function [dbo].[FN_SPLITTER_STRING] (@IDs nvarchar(max), @SEP nvarchar(5))
Returns @Tbl_IDs Table (ID nvarchar(500)) As
Begin
-- Append comma
Set @IDs = @IDs + @SEP
-- Indexes to keep the position of searching
Declare @Pos1 Int
Declare @Pos2 Int
Set @Pos1=1
Set @Pos2=1
While @Pos1<Len(@IDs)
Begin
Set @Pos1 = CharIndex(@SEP,@IDs,@Pos1)
Insert @Tbl_IDs Select Substring(@IDs,@Pos2,@Pos1-@Pos2)
Set @Pos2=@Pos1+LEN(@SEP)
Set @Pos1 = @Pos1+LEN(@SEP)
End
Return
End
Эта функция принимает строку с ограничением @SEP (@IDs) и возвращает таблицу, содержащую идентификаторы в виде целых чисел.
Затем вы можете использовать эту функцию в своей хранимой процедуре следующим образом:
Delete from tblProduct Where ProductId in (select ID from dbo.FN_SPLITTER_STRING(@Ids,','))