बचने के लिए '
आपको पहले एक और लगाने की जरूरत है:''
दूसरे उत्तर से पता चलता है कि इस तरह एकल उद्धरण से बचना संभव है:
select 'it''s escaped'
परिणाम होगा
it's escaped
यदि आप SQL को VARCHAR में (यानी डायनामिक SQL) निष्पादित करने के लिए संक्षिप्त कर रहे हैं, तो मैं SQL को पैरामीटर करने की सलाह दूंगा। यह एसक्यूएल इंजेक्शन प्लस के खिलाफ गार्ड की मदद करने का लाभ है इसका मतलब है कि आपको इस तरह के उद्धरणों से बचने के बारे में चिंता करने की ज़रूरत नहीं है (जो आप उद्धरणों को दोगुना करके करते हैं)।
जैसे करने के बजाय
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = ''AAA'''
EXECUTE(@SQL)
इसे इस्तेमाल करे:
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = @Field1'
EXECUTE sp_executesql @SQL, N'@Field1 VARCHAR(10)', 'AAA'