Nó giống như hầu hết các tính năng dbms, nếu bạn sử dụng nó trong tình huống phù hợp thì nó hoạt động tốt, tình huống sai thì nó hoạt động kém.
Ưu điểm: Một số điều không thể được thực hiện mà không có nó. Thông thường tôi chỉ thấy điều này là dành cho công việc hành chính, và không phải mã ứng dụng. Một số lệnh hệ thống không cho phép các tham số được sử dụng làm đầu vào. Vì vậy, ví dụ nếu tôi cần chạy một cái gì đó thông qua một cơ sở dữ liệu đối với mọi cơ sở dữ liệu, trong nhiều trường hợp với cơ sở dữ liệu không xác định và lệnh không chấp nhận tham số, tôi thường giải quyết vấn đề này thông qua SQL động. Tuy nhiên, đây là một điều trong Sybase ASE hơn là MSSQL.
Nhược điểm: Tôi sẽ không đi sâu vào nó, vì tôi nghĩ rằng tất cả chúng ta đều đã biết, nhưng có thể có một số rủi ro đối với việc tiêm SQL nếu nó được sử dụng không chính xác. Điều lớn hơn với tôi là truy vấn sẽ được xử lý như nó là gì, một truy vấn adhoc duy nhất và không phải là một phần của kế hoạch truy vấn được biên dịch. Đối với một cái gì đó chạy đôi khi, không có vấn đề lớn. Đối với một cái gì đó được thực hiện hàng trăm lần một phút và sẽ có rất nhiều sql duy nhất, nó sẽ tạo ra rất nhiều kế hoạch truy vấn mới, có thể không cần thiết, ăn hết chu kỳ và rút ngắn thời gian hợp lệ của bộ đệm của kế hoạch.