Untuk melarikan diri '
Anda hanya perlu meletakkan yang lain sebelumnya:''
Seperti yang ditunjukkan oleh jawaban kedua, mungkin untuk menghindari kutipan tunggal seperti ini:
select 'it''s escaped'
hasilnya akan
it's escaped
Jika Anda menggabungkan SQL menjadi VARCHAR untuk dieksekusi (yaitu SQL dinamis), maka saya akan merekomendasikan parameterisasi SQL. Ini memiliki manfaat membantu menjaga terhadap injeksi SQL plus berarti Anda tidak perlu khawatir tentang keluar dari kutipan seperti ini (yang Anda lakukan dengan menggandakan tanda kutip).
misalnya daripada melakukan
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = ''AAA'''
EXECUTE(@SQL)
coba ini:
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = @Field1'
EXECUTE sp_executesql @SQL, N'@Field1 VARCHAR(10)', 'AAA'