내 SQL 문에서 TOP 값을 매개 변수화하려고합니다.C# SQL 매개 변수로 위로
SELECT TOP @topparam * from table1
command.Parameters.Add("@topparam",SqlDbType.VarChar, 10).Value = somevalue.ToString();
이것은 작동하지 않습니다. 누구든지 어떤 제안이 있습니까?
명확히하기 위해 저장 프로 시저를 사용하고 싶지 않습니다.
내 SQL 문에서 TOP 값을 매개 변수화하려고합니다.C# SQL 매개 변수로 위로
SELECT TOP @topparam * from table1
command.Parameters.Add("@topparam",SqlDbType.VarChar, 10).Value = somevalue.ToString();
이것은 작동하지 않습니다. 누구든지 어떤 제안이 있습니까?
명확히하기 위해 저장 프로 시저를 사용하고 싶지 않습니다.
SQL Server 2005 and above, 당신은이 작업을 수행 할 수 있습니다
SELECT TOP (@topparam) * from table1
당신은 인라인 쿼리를 작성할 수 있습니다
EXEC를
가 int로서 구문 분석 '... * FROM'+ @topparam + 'TOP SELECT'하고는 SQL 주입 공격을 방지 할 수 있습니다.
당신은이 코드는 예를 들어 8분의 2,005에서 잘 작동 적어도 SQL 서버 2005에 있어야합니다 ...
DECLARE @iNum INT
SET @iNum = 10
SELECT TOP (@iNum) TableColumnID
FROM TableName
하는 경우 당신은 SQL 서버 2000을 가지고 있는데,이 시도해보십시오 ...
CREATE PROCEDURE TopNRecords
@intTop INTEGER
AS
SET ROWCOUNT @intTop
SELECT * FROM SomeTable
SET ROWCOUNT 0
GO
이것은 내 대답을 이끌었다. 값을 varchar로 전달하고 int로 전환하여 고정했습니다. 모두에게 감사드립니다. – muhan
이것은 정확히 제가 찾은 것입니다, 감사합니다! – ActionOwl
@topparam을 TOP 값을 무시하고 모든 행을 반환하는 값으로 설정하는 방법이 있습니까? –