SQL-सर्वर के लिए, इसके लिए दो सामान्य दृष्टिकोण हैं। तीसरा विकल्प इससे बचना चाहिए एक varchar
. में पास करना है और इसे IN
. के साथ एक गतिशील SQL कथन में संयोजित करें - यह एक स्पष्ट इंजेक्शन हमले की सतह है।
उचित विकल्प:
-
varchar
. में पास करें और डेटा को एक सीमांकक पर विभाजित करने के लिए UDF का उपयोग करें (इस प्रश्न में पसंद करें ), शायद अल्पविराम, पाइप, टैब, आदि। परिणाम में शामिल हों:SELECT something, anotherthing FROM atable a INNER JOIN dbo.SplitUDF(@values) udf ON udf.Value = a.something
- एक टेबल-वैल्यूड-पैरामीटर का उपयोग करें (एसक्यूएल2008) और सीधे जुड़ें (यूडीएफ से बचें)