2012-05-28 35 views

Trả lời

23

Bạn có thể sử dụng sp_executesql với thông số output để truy xuất kết quả vô hướng.

DECLARE @query as nvarchar(200), @count int; 
SET @query = N'SELECT @count = COUNT(*) FROM table'; 

EXEC sp_executesql @query, 
        N'@count int OUTPUT', 
        @count = @count OUTPUT 

SELECT @count AS [@count] 
+0

Cảm ơn bạn, không chắc chắn nếu tôi hiểu mã một cách thích hợp, liệu nó có gán kết quả truy vấn vào biến số, theo OUTPUT không? – Malyo

+1

@Malyo - Nó khai báo một biến '@ count' trong phạm vi bên ngoài. Điều này được thông qua như một tham số đầu ra trong cuộc gọi 'sp_executesql' có nghĩa là gán cho tham số đầu ra được truyền cho biến đó. Xem [TSQL Basics II - Tham số ngữ nghĩa tham số] (http://blogs.msdn.com/b/sqlprogrammability/archive/2006/06/09/624531.aspx) để biết thêm về các tham số 'OUTPUT'. –

9

Bạn có thể làm điều đó như thế này:

exec (@query) 

hay, tốt, như thế này:

execute sp_executesql @query 

Mọi chi tiết, kiểm tra this MSDN article.

Các vấn đề liên quan