Wszyscy wiemy, że przygotowane oświadczenia są jednym z najlepszych sposobów obrony przed atakami typu SQL injection. Jaki jest najlepszy sposób tworzenia przygotowanego oświadczenia z klauzulą "IN". Czy istnieje prosty sposób na zrobienie tego z nieokreśloną liczbą wartości? Weźmy na przykład następujące zapytanie.Obsługa danych w klauzuli IN z parametrami SQL?
SELECT ID,Column1,Column2 FROM MyTable WHERE ID IN (1,2,3)
Obecnie używam pętli nad moimi możliwymi wartościami, aby zbudować ciąg znaków taki jak.
SELECT ID,Column1,Column2 FROM MyTable WHERE ID IN (@IDVAL_1,@IDVAL_2,@IDVAL_3)
Czy można użyć tylko przekazać tablicę jako wartość parametru zapytania i użyć kwerendy w następujący sposób?
SELECT ID,Column1,Column2 FROM MyTable WHERE ID IN (@IDArray)
W przypadku ważne Pracuję z SQL Server 2000, w Vb.NET
dodać znacznik SQLServer – MotoWilliams
może być również odpowiedni znacznik t-sql. –