如何从运行时传递 n 值的表中获取前 n 行?

2024-01-29

如何从运行时传递 n 值的表中获取前 n 行?


在 SQL Server 2005 及更高版本中,您实际上可以参数化 top 命令。

下面的代码来自MSDN http://msdn.microsoft.com/en-us/library/ms189463.aspx

USE AdventureWorks;
GO
DECLARE @p AS int;
SELECT @p=10
SELECT TOP(@p)*
FROM HumanResources.Employee;
GO

在 SQL Server 的早期版本中,您将需要使用 rowcount 或动态 sql。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从运行时传递 n 值的表中获取前 n 行? 的相关文章

  • 使用 powershell 执行 .sql 脚本并将输出存储在 .sql 文件中

    我正在尝试从 powershell 运行 sql 脚本 sql 文件并将结果保存到 sql 文件中 概述 SQL 数据库恢复需要用户和权限备份预恢复 一旦恢复完成 我们需要在数据库上执行输出 我们预恢复的用户权限备份 这是我的脚本 当我执行
  • 隐藏 SSRS 嵌套组同时显示详细信息行

    我有一个分层数据集 如下所示 Group1 Group2 Group3 Group4 Group5 Detail Food Fruit Red Apple Apple Food Fruit Orange Orange Orange Food
  • SQL Server 的 printf

    Sql Server中有类似printf的函数吗 我想要与 RAISERROR 函数相同的功能 但我不想抛出错误或打印消息 而是想将其写在 varchar 中 因为我的 ERP 不允许我处理错误消息 这是 SQL Server 2000 R
  • 我可以在 SQL 查询中使用什么来帮助我确定查询未返回任何数据结果的原因

    有人可以帮助我对 SQL 查询进行故障排除 以找出为什么它不返回任何结果 只返回列别名吗 我已将其分解 并且明显组合在一起的所有部分均单独返回预期数据 感谢您提前提供的任何指导 帮助 下面是我的脚本 DECLARE u cnt INT DE
  • 如何使用另一个表中存在的列名创建表?

    我正在研究 SQL Server 2016 我想知道是否可以创建一个永久或临时表 其列名存在于另一个表中 请参阅下表 MAINTAGS 及其代码 我希望 DOB 作为我的第一栏 POB 作为第二栏 依此类推 目前我的 MAINTAGS 表中
  • 到命名实例的 Sql 连接字符串

    我可以在示例代码项目中使用它连接到我的 sql server 2008 开发人员服务器 string connection data source SQLSERVER2008 Integrated Security SSPI Initial
  • SQL 注入:replace("'", "''") 还不够好吗?

    虽然我当然可以看到使用参数进行 SQL 查询的优点 特别是在处理日期时间和类似的事情时 但我仍然不确定参数作为only防止SQL注入的方法 事实是 我继承了一个应用程序 它有类似的东西 SELECT Field FROM Table WHE
  • 将 SQL Server 数据库合并为 1

    我需要将 20 个具有相同结构的数据库合并为 1 个数据库 我看到了这个帖子 以最小的延迟将来自许多不同数据库的数据整合到一个数据库中 https stackoverflow com questions 2537986 consolidat
  • NULL 与空字符串

    以下查询有什么区别及其工作原理 SELECT FROM some table WHERE col IS NOT NULL SELECT FROM some table WHERE col lt gt 问候 穆巴拉克 The NULL是特殊数
  • 从视图中的动态表名称中选择

    我的客户每年都会创建一个新表 其名称中包含年份 我必须在 SQL Server 数据库的新视图中使用该表 我已经通过一个查询解决了这个问题 DECLARE SQLString nvarchar 500 SET SQLString SELEC
  • 在 SSMS 中创建架构

    我知道在 SQL 中创建模式非常容易 CREATE SCHEMA
  • 确定表的行大小

    如何确定表的最大行大小 我正在寻找一个可以执行此操作的工具或脚本 这样我就不必手动添加每列的大小 我的目标是生成一份太宽表格的报告 以便我们可以考虑重组它们 我知道我们有几个太宽 每个 8K 页面只能容纳 1 行 但我想找到其余的 另一种方
  • SQL Server 中的“with (nolock)”是什么?

    有人可以解释使用的含义with nolock 关于查询 什么时候应该 不应该使用它 例如 如果您有一个银行应用程序 交易率很高并且某些表中有大量数据 那么在什么类型的查询中 nolock 是可以的 是否存在您应该始终使用它 从不使用它的情况
  • SSIS Excel 导入强制错误的列类型

    我正在尝试使用 SSIS 将电子表格导入到我们的数据库中 由于某种原因 当其中两列包含字符数据时 SSIS 希望相信它们的类型为 Double 我尝试将列重新映射为 nvarchar 255 但它仍然不想选择它认为是双精度的数据 因为其中有
  • 将 char 数据类型转换为 datetime 数据类型导致日期时间值超出范围

    我正在努力将数据从 Excel 导入到 SQL Server 我在 sql server 中插入日期和日期时间值时遇到问题 它向我展示了这个错误 System Data SqlClient SqlException The conversi
  • 如何中止触发器中的多行插入

    使用 SQL Server 2005 我已经声明了一个触发 AFTER INSERT UPDATE 的触发器 在这个触发器中 我使用 WHILE 和 CURSOR 在 INSERTED 表的行上循环 当我发现一行不满足特定条件时 我希望触发
  • SQL Server 列的默认登录用户

    如何创建一个列 其中包含当时在表中创建该行的用户的默认值 I tried system user 但这显示了从表中进行选择时登录的人员 尝试这样的事情 CREATE TABLE DemoTable ID INT IDENTITY 1 1 S
  • 如何获取网络上可用的 SQL Server 列表?

    我正在尝试这个 但我不知道如何继续 你能帮我个忙吗 SqlDataSourceEnumerator instance SqlDataSourceEnumerator Instance DataTable table instance Get
  • 实体框架 - 悲观锁定

    我想做的基本上是NHibernate 做什么 http knol google com k nhibernate chapter 10 transactions and concurrency 10 282E 296 282E 29 28C
  • 而不是SQL Server中的触发器丢失SCOPE_IDENTITY?

    我有一个表 我在其中创建了一个INSTEAD OF触发执行一些业务规则 问题是当我将数据插入该表时 SCOPE IDENTITY 返回一个NULL值 而不是实际插入的身份 插入 范围代码 INSERT INTO dbo Payment Da

随机推荐