Подтвердить что ты не робот

С# SQL Top как параметр

Попытка параметризовать значение TOP в моей инструкции sql.

SELECT TOP @topparam * from table1

command.Parameters.Add("@topparam",SqlDbType.VarChar, 10).Value = somevalue.ToString();

Это не работает. У кого-нибудь есть предложения?
Чтобы уточнить, я не хочу использовать хранимые процедуры.

4b9b3361

Ответ 2

У вас должен быть хотя бы SQL Server 2005. Этот код отлично работает в 2005/8, например...

DECLARE @iNum INT
SET @iNum = 10
SELECT TOP (@iNum) TableColumnID
FROM TableName

Если у вас есть SQL Server 2000, попробуйте...

CREATE PROCEDURE TopNRecords
@intTop INTEGER
AS
SET ROWCOUNT @intTop

SELECT * FROM SomeTable

SET ROWCOUNT 0
GO

Ответ 3

Вы можете написать встроенный запрос:

EXEC 'SELECT TOP' + @topparam + '* FROM...'

Проанализируйте его как int, и это предотвратит атаку SQL-инъекций.