C#SQL Top作为参数

muh*_*han 49 sql t-sql sql-server ado.net

试图在我的sql语句中参数化TOP的值.

SELECT TOP @topparam * from table1

command.Parameters.Add("@topparam",SqlDbType.VarChar, 10).Value = somevalue.ToString();
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.有人有什么建议吗?
只是为了澄清,我不想使用存储过程.

Cad*_*oux 76

SQL Server 2005及更高版本中,您可以执行以下操作:

SELECT TOP (@topparam) * from table1
Run Code Online (Sandbox Code Playgroud)


JP *_*oto 8

你需要至少有SQL Server 2005.这个代码在2005/8工作正常,例如...

DECLARE @iNum INT
SET @iNum = 10
SELECT TOP (@iNum) TableColumnID
FROM TableName
Run Code Online (Sandbox Code Playgroud)

如果您有SQL Server 2000,请尝试一下...

CREATE PROCEDURE TopNRecords
@intTop INTEGER
AS
SET ROWCOUNT @intTop

SELECT * FROM SomeTable

SET ROWCOUNT 0
GO
Run Code Online (Sandbox Code Playgroud)