2010-09-26 31 views
5

Tôi có một thủ tục được lưu trữ cần phải gọi cho SP thứ 2 nhiều lần. Điều duy nhất thay đổi là các tham số cho SP thứ 2. Một cái gì đó như thế này:Tôi có nên sử dụng sp_executesql hoặc EXEC để chạy một thủ tục lưu sẵn không?

SELECT @P1=5, @P2=5 
EXEC MyProc @P1, @P2 

SELECT @P1=0, @P2=1 
EXEC MyProc @P1, @P2 

Bây giờ nếu nó được SQL động Tôi đã chạy Tôi biết sp_executesql sẽ là tốt hơn so với EXEC nhưng vì những gì tôi đang kêu gọi nhiều lần trong thực sự là một SP nên tôi vẫn sử dụng sp_executesql hoặc là EXEC như hiển thị ở trên chỉ là tốt?

Cảm ơn bạn đã được trợ giúp.

Trả lời

2

Sử dụng EXEC như bạn đã ở trên đó là hình thức EXEC storedprocname

sp_executesql là tốt hơn so với EXEC (@sqlstring) thường, nơi bạn có SQL động, không phải là một proc lưu trữ. Vì vậy, bởi vì bạn đang gọi một proc được lưu trữ, cú pháp bạn có là cách tốt nhất

+0

OK, cảm ơn bạn đã xác nhận. – user169867

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