2016-04-29 29 views
8

için çalışmıyor replace Bu benim sqlZarif Parametre Top

var maxLimit =100; 
var sql = "Select Top @MaxLimit from Table WHere data [email protected]" 
conn.Query<Result>(sql, new { 
       Id = customerId, 
       MaxLimit = maxLimit 
      }) 

olduğu Ama sistem hatayı @MaxLimit yakın

yanlış sözdizimi olsun.

Dapper, Top veya Fetch? Gibi alanları parametrize edemiyor mu?

cevap

16

SQL Server'da sayısal bir sabitten başka herhangi bir top ifadesinin parantez içinde olması gerekir.

SELECT TOP (@MaxLimit) FROM ... 
+2

Sadece 2005 ve daha desteklenir. (yaşımı gösteriyorum) – mxmissile

1

Bu aynı zamanda yeni Zarif sürümleriyle çalışır:

var sql = "Select Top {=MaxLimit} from Table WHere data [email protected]";