18
thể trùng lặp:
SQL Server - use a parameter to select the top X of the result setBạn có thể chuyển số 'TOP' làm tham số cho một thủ tục được lưu trữ không?
truy vấn của tôi trong thủ tục lưu trữ của tôi trông giống như sau:
select top 9 from my_table;
Tôi muốn chỉnh sửa các thủ tục lưu trữ để tự động tạo ra Tuy nhiên, giới hạn từ thông số, điều này dường như không hoạt động:
ALTER PROCEDURE [dbo].[my_stored_procedure]
@n INT(2)
AS
BEGIN
SELECT TOP @n from my_table;
Điều này có thể thực hiện được không? Hoặc tôi phải làm điều gì đó như:
@n int(2),
@sql varchar(30)
@sql = 'select top ' + @n '* from my table';
exec(@sql);
Cảm ơn.
gì xảy ra nếu bạn cố gắng 'SELECT TOP (@n) '? – Lamak
Chỉ cần thử nó! Nó sẽ nhanh hơn để thực sự chạy truy vấn hơn là đăng nó ở đây. – JNK
http://social.msdn.microsoft.com/search/en-us?query=top&x=0&y=0 –