相关疑难解决方法(0)

在SQL Server的select语句中使用带有TOP的变量而不使其动态化

declare @top  int
set @top = 5
select top @top * from tablename
Run Code Online (Sandbox Code Playgroud)

可能吗?

或任何想法这样的逻辑(我不想使用动态查询)?

sql t-sql sql-server sql-server-2005

205
推荐指数
3
解决办法
9万
查看次数

SQL:如何在SELECT TOP @amount中使用TOP参数?

使用vs2008查询构建器,我正在尝试进行查询以获取" TOP"命令的参数,然后我遇到错误"顶层表达式中的错误"

作品:

SELECT TOP 5 * FROM dbo.SomeTable
WHERE SomeColumn = SomeValue
Run Code Online (Sandbox Code Playgroud)

不起作用:

SELECT TOP @param1 * FROM dbo.SomeTable
WHERE SomeColumn = SomeValue
Run Code Online (Sandbox Code Playgroud)

alt text http://www.freeimagehosting.net/uploads/f9b9354577.jpg

sql t-sql sql-server parameters

39
推荐指数
2
解决办法
2万
查看次数

您是否能够将"TOP"号码作为参数传递给存储过程?

可能重复:
SQL Server - 使用参数选择结果集的前X个

我的存储过程中的查询看起来像:

select top 9 from my_table;
Run Code Online (Sandbox Code Playgroud)

我想编辑存储过程以从参数动态生成限制,但是,这似乎不起作用:

ALTER PROCEDURE [dbo].[my_stored_procedure]
   @n INT(2)
AS
BEGIN

SELECT TOP @n from my_table;
Run Code Online (Sandbox Code Playgroud)

这可行吗?或者我必须做以下事情:

@n int(2),
@sql varchar(30)

@sql = 'select top ' + @n '* from my table';
exec(@sql);
Run Code Online (Sandbox Code Playgroud)

谢谢.

sql t-sql sql-server sql-server-2005

23
推荐指数
1
解决办法
1万
查看次数

标签 统计

sql ×3

sql-server ×3

t-sql ×3

sql-server-2005 ×2

parameters ×1