Giả sử tôi có một truy vấn được lưu trữ trong một biến như thế này (nó thực sự động dân cư và phức tạp hơn, nhưng điều này là dành cho mục đích minh chứng):SQL "nếu tồn tại ..." dynamic query
DECLARE @Query VARCHAR(1000) = 'SELECT * FROM dbo.MyTable'
Có một cách để kiểm tra xem truy vấn có trả về bất kỳ kết quả nào không? Một cái gì đó như thế này, nhưng điều này không làm việc:
IF EXISTS (@Query)
BEGIN
-- do something
END
Cách duy nhất mà tôi có thể nghĩ ra để làm điều này là để đưa các kết quả trong một bảng tạm thời và sau đó truy vấn từ đó, nhưng đó không phải là lý tưởng vì các cột trong truy vấn động có thể khác nhau và tôi thực sự không cần bảng tạm thời vì bất kỳ lý do nào khác ngoài việc kiểm tra xem một số hàng có được trả về hay không. Có cách nào tốt hơn?
Sau đó thử với truy vấn con EXISTS .... Làm điều gì đó tồn tại (chọn 1 từ dbo.MyTable). Cuối cùng, bạn đang kiểm tra bảng đó để thực hiện một số việc khác khi các bản ghi tồn tại trong bảng đó. – knkarthick24
Truy vấn phụ là động, được lưu trữ trong một biến như được hiển thị ở trên. 'EXISTS' không hoạt động khi nó hoạt động. – mayabelle