Trốn thoát '
bạn cần đặt một cái khác trước:''
Như câu trả lời thứ hai cho thấy có thể thoát khỏi một trích dẫn đơn lẻ như thế này:
select 'it''s escaped'
kết quả sẽ là
it's escaped
Nếu bạn đang nối SQL vào một VARCHAR để thực thi (tức là SQL động), thì tôi khuyên bạn nên tạo tham số cho SQL. Điều này có lợi ích là giúp bảo vệ chống lại SQL injection, đồng nghĩa với việc bạn không phải lo lắng về việc thoát khỏi các dấu ngoặc kép như thế này (bạn làm bằng cách tăng gấp đôi các dấu ngoặc kép).
ví dụ thay vì làm
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = ''AAA'''
EXECUTE(@SQL)
thử cái này:
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = @Field1'
EXECUTE sp_executesql @SQL, N'@Field1 VARCHAR(10)', 'AAA'