C # SQL Top como parámetro
Tratando de parametrizar el valor de TOP en mi sentencia sql.
SELECT TOP @topparam * from table1
command.Parameters.Add("@topparam",SqlDbType.VarChar, 10).Value = somevalue.ToString();
Esto no parece funcionar. Alguien tiene alguna sugerencia?
Solo para aclarar, no quiero usar procedimientos almacenados.
43
Author: Tim Schmelter, 2009-08-14
3 answers
En SQL Server 2005 y superior , puede hacer esto:
SELECT TOP (@topparam) * from table1
65
Author: Cade Roux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-14 00:19:38
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-14 00:19:38
Necesita tener al menos SQL Server 2005. Este código funciona bien en 2005/8 por ejemplo ...
DECLARE @iNum INT
SET @iNum = 10
SELECT TOP (@iNum) TableColumnID
FROM TableName
Si tiene SQL Server 2000, pruebe esto ...
CREATE PROCEDURE TopNRecords
@intTop INTEGER
AS
SET ROWCOUNT @intTop
SELECT * FROM SomeTable
SET ROWCOUNT 0
GO
8
Author: JP Alioto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-14 00:20:34
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-14 00:20:34
Podría escribir una consulta en línea:
EXEC 'SELECT TOP' + @topparam + ' * FROM... '
Analícelo como un int y eso evitará un ataque de inyección SQL.
0
Author: Russell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-14 00:18:01
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-14 00:18:01