将 sp_executesql 与 params 一起使用会抱怨需要声明变量

2023-12-01

我正在尝试创建一个使用 sp_executesql 的存储过程。我已经仔细观察了很久here,但我看不到我在代码中做错了什么。一般来说,我对存储过程/sql 服务器功能很陌生,所以我猜我错过了一些简单的东西。存储过程更改发生得很好,但是当我尝试运行它时,出现错误。

错误说。

Msg 1087, Level 15, State 2, Line 3
Must declare the table variable "@atableName"

该过程如下所示。

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[sp_TEST]
    @tableName varchar(50),
    @tableIDField varchar(50),
    @tableValueField varchar(50)
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @SQLString nvarchar(500);
    SET @SQLString = N'SELECT DISTINCT @aTableIDField FROM @atableName';
    EXEC sp_executesql @SQLString,
            N'@atableName varchar(50),
              @atableIDField varchar(50),
              @atableValueField varchar(50)',
            @atableName = @tableName,
            @atableIDField = @tableIDField,
            @atableValueField = @tableValueField;
END

我正在尝试用这样的方式来称呼它。

EXECUTE sp_TEST 'PERSON', 'PERSON.ID', 'PERSON.VALUE'

此示例没有添加任何特殊内容,但我有大量具有类似代码的视图。如果我能让这个存储过程正常工作,我就可以大大减少大量重复代码。

感谢您的帮助。

Edit:我尝试这样做是为了更容易维护。我有多个视图,它们基本上具有完全相同的 sql,只是表名不同。数据被传送到 SQL Server 实例以用于报告目的。当我有一个表,每个人的 ID 包含多行,每行都包含一个值时,我经常需要将它们放在一个单元格中供用户使用。


您无法参数化表名,因此它将因@atableName而失败

您需要将第一位与 atableName 连接起来,这违背了使用 sp_executesql 的目的

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

将 sp_executesql 与 params 一起使用会抱怨需要声明变量 的相关文章

  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤
  • 在 SQL 中将数字求小数次幂

    我试图在 MS SQL 中将一系列数字求小数 1 5 次幂 但在应用于负基数时出现 域错误 这应该不是问题 因为我要提升到奇次幂根 此外 我可以在 Excel 中进行计算 谁能评论一下 MS SQL 是否根本不支持将负幂提高到小数根 负基数
  • SQL中的NULL和编程语言中的NULL之间的区别

    我刚刚遇到一个关于如何在 T SQL 可能还有其他形式的 SQL 中处理 NULL 的有趣场景 这个问题得到了很好的描述和回答这个问题 https stackoverflow com questions 2866714 how does a
  • 如何连接sql中具有相同值但在同一个表的不同列中的行?

    我正在尝试合并来自不同列的具有相同值的数据 并且仅停止显示没有连接值的记录 例如我有 ID TaxDecNo PrevTaxDec 1 5374 11135 2 9864 7394 3 11135 21784 4 7394 6872 5 2
  • 如何避免使用 Cursor 来实现此伪代码 - SQL Server

    CREATE PROCEDURE p processDataFor accountId BEGIN for each item in select from Accounts where accountId accountId and is
  • 同时使用 GUID 和自动递增整数

    我一直在研究使用 GUID 作为数据库中的主键 到目前为止 利似乎大于弊 然而 我发现 GUID 可能不是我想要的 在我的应用程序中 用户应该能够根据用户友好的 ID 来识别对象 因此 例如 如果他们想要获取特定产品而不输入全名 则可以使用
  • SQL:如何在按部分分组的查询中使用子查询?

    如何在按部分分组的查询中使用子查询 我使用 SQL Server 2008 R2 和 Delphi 2010 我收到此错误 Cannot perform an aggregate function on an expression cont
  • sql查询获取从一月到当月的所有数据,即使没有记录

    我不擅长 sql 所以任何帮助世界都很棒 我有一个 SQL 查询 可以获取从一月到当月注册的记录 我的代码示例 SELECT DatePart YEAR p createStamp as TheYear DatePart MONTH p c
  • 弹簧隔离支持吗? SQL快照隔离

    我们正在使用 SQL Server 快照隔离可能是提高性能和解决一些死锁问题的好方法 假设我们确实需要更改为快照隔离 我似乎找不到一种简单的方法来在 Springs 上启用快照隔离 Transactional 我发现以下 hibernate
  • MYSQL - 使用逗号分隔字符串作为变量输入的存储过程

    我希望有人能够提供帮助 我已经创建了我的第一个存储过程 没什么花哨的 但是我遇到了问题 我想给它一个字符串输入 例如 1 2 3 4 5 然后它执行一个简单的操作SELECT FROM TABLE WHERE EAN IN VAR 所以存储
  • 解析带下划线的 SQL Server 数字文字

    我想知道它为什么有效以及为什么它不返回错误 SELECT 2015 11 Result 11 2015 第二种情况 SELECT 2 1 a a 2 1 检查元数据 SELECT name system type name FROM sys
  • 从 Getdate() 获取时间

    我想采取Getdate 结果 例如 2011 10 05 11 26 55 000 into 11 26 55 AM 我看过其他地方并发现 Select RIGHT CONVERT VARCHAR GETDATE 100 7 这给了我 11
  • 我可以从 SQL Server 读取元数据来了解最后更改的行/表吗?

    我们有一个数据库hundreds的桌子 有没有某种metaSQL Server 中的数据源 我可以以编程方式查询以获取名称最后更改表和行 或者我们是否需要实施这个我们自己每个表中的字段称为上次更改日期时间 etc 就查明表最后一次修改的时间
  • 从 Sharepoint 到 SQL Server 的实时同步

    我见过许多将 SQL Server 数据同步到 SharePoint 的解决方案 但没有见过将 SharePoint 列表同步到 SQL Server 的解决方案 有谁知道解决方案吗 商业化就好了 或者 我需要编写一个 Web 部件来创建多
  • 基于多个表的数据更新单个表 SQL Server 2005,2008

    我需要更新表one使用表中的数据two 表一和表二没有任何公共列相关 桌子three与表相关two 例如 表一 reg det 表 reg det id reg id results 101 11 344 表二 临时表 venue resu
  • 尝试从 Linux 通过 ODBC 连接到 SQL Server 2014 时出现错误代码 0x2746 (10054)

    Ubuntu 22 04 1 LTS pyodbc 4 0 35 OpenSSL 3 0 2 15 Mar 2022 Library OpenSSL 3 0 2 15 Mar 2022 遵循的步骤安装适用于 SQL Server Linux
  • 如何在 sql 2005 或 2008 中使列区分大小写

    是否可以根据列更改默认排序规则 我想让 1 列区分大小写 但其他所有列都不区分大小写 ALTER TABLE ALTER COLUMN允许更改单个列的排序规则 alter table Foo alter column Bar ntext c
  • 如何在 SQL 选择查询中将行转换为 JSON?

    以下查询将整个表返回为单个 JSON 字符串 JSON 对象列表 每行一个 SELECT FROM MyTable FOR JSON AUTO 我需要返回多行 其中每行都是表中单行的 JSON 字符串 例如 如果表字段为 A B C 输出应
  • SQL Server 选择所需存储过程的查询帮助

    我正在努力解决在存储过程中构造 sql select 查询所需的逻辑 我的数据库使用股票市场数据 我有一个 2012 年交易日期表 一个股票代码表以及一个通过网络服务列出这些代码和交易日期的每日定价数据表 我正在尝试从我正在处理的选择查询中
  • 发布Oracle和SQL Server性能测试是否违反许可? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想对Oracle和SQL Server中的空间索引进行性能测试 我想将其纳入我的理学硕士工作中 发布此类结果是否违反 dbms 的许可 也许有人已经

随机推荐

  • Laravel5 - 非静态方法不应静态调用

    我不知道这个错误是什么 请有人给我一些解释 on my UserController php class UserController extends Controller public function viewCard card id
  • 使用 PHP 合并图像时的图像透明度和 Alpha

    所以我在 PHP Doc 上找到了一些代码 并对其进行了稍微编辑以合并我拥有的两个图像 然后图像将保存在服务器上的文件夹中 但是有一个小问题 我无法弄清楚为什么会发生这种情况 首先我的代码 glassurl GET GlassImg fra
  • 有没有办法只执行文档测试,忽略打印函数调用?

    假设来说 我的功能返回一个值 and 有很多打印语句 也许 100 个或更多 有没有办法跑doctest这样所有其他打印工作都可以被忽略 跳过 我熟悉 SKIP指令 用于跳过doctest示例 即当我执行我的函数 或将我的模块作为脚本运行
  • 使用本地设置进行 django 测试

    Python 2 7 姜戈1 2 当我测试 Django 应用程序时 我遇到了奇怪的 local settings 行为 我有我的
  • 将完成处理程序添加到presentViewControllerAsSheet(NSViewController)?

    我试图呈现一个工作表配置视图 AddSoundEffect 对于我的主窗口 视图控制器 我正在使用故事板 当配置视图控制器被关闭时 采用在AddSoundEffect查看并将其传递回主视图 我当前在主视图控制器中的代码 presentVie
  • 获取args[0]之后的所有参数discord.js

    我试图制作一个静音命令 并且我正在添加一个系统 您可以在其中出于某种原因将它们静音 机器人会回复 用户的用户名 已静音 原因 原因 对我来说 args 0 只是提到您想要静音的用户 但我不知道如何获取 args 0 之后的所有内容 我尝试过
  • “JSON”未定义

    I m trying to load the Chromecast background website into a c WebBrowser but am getting 我认为发生这种情况是因为网络浏览器默认使用 IE7 这可能无法与
  • 在 Codeigniter 中的所有控制器上具有固定视图

    为了在 CodeIgniter 中加载视图 我必须重复加载固定视图 页眉和页脚 这对于每个与视图相关的控制器重复加载有点烦人 目前 当我想在 CI 中加载视图时 我会执行以下操作 this gt load gt view header th
  • 如何在具有不同域的同一 IP/服务器上托管多个 Node.js 站点?

    我有一个Linux服务器 绑定了一个IP 我想在该 IP 上的服务器上托管多个 Node js 站点 每个站点 显然 都有一个唯一的域或子域 我希望它们全部位于端口 80 上 我有什么选择来做到这一点 一个明显的解决方案似乎是让所有域都由充
  • 如何通过命令行更改现有文件夹的图标? (Windows 10)

    我的桌面上有一个文件夹和 12 个不同的图标 我想使用任务计划程序创建一个计划任务 只要我的电脑处于打开状态 该任务就会运行并每 15 分钟更改一次文件夹的图标 我做了研究 发现了这段代码 attrib h r c test desktop
  • iPhone核心位置:地图类型更改时自定义图钉图像消失

    我有一个位于 MKMapView 上的分段控制器 当我更改 MKMapType 时 自定义图钉的图像将恢复为默认的红色 标题和副标题以及坐标保持不变 任何人都可以阐明可能的解决方案吗 不久前我也遇到了类似的问题 为什么自定义 MKMapVi
  • 如何判断 Sympy 变量是否为复数?

    我正在编写一个涉及求解这个方程的代码 X solve Theta Mod Eqn Ramp Equation x PT C x 我正在使用 sympy 库 现在方程有 7 个根 很少是复数根 很少是实数根 我无法将它们分开 因为isinst
  • 服务永久处于“启动”状态

    我用 C 编写了一个 Windows 服务 它将 wav 文件转换为 mp3 然后将它们存储在远程服务器上 在我的开发平台 操作系统 WinXP SP3 上 服务启动正常并按预期运行 当我将其安装到生产机器 操作系统 WinServer 2
  • notificationDataSetChanged() 使列表刷新并滚动跳回顶部

    我正在尝试实现无限滚动列表视图 但是当我打电话时notifyDataSetChanged 整个列表刷新然后滚动位置返回到顶部 这是正常行为吗 如何让它简单地添加添加的项目而不刷新并保持滚动位置 这种行为是不正常的 在没有看到您的代码的情况下
  • 使用 Javascript/jQuery 访问 id 属性不正确的 HTML 元素

    我正在为某人制作一个 Greasemonkey 脚本 以更改其 CRM Zoho 创建的某些字段的显示 因为他们无权更改呈现的 HTML 这应该很容易 但是 Zoho 认为创建正确的 HTML 太麻烦了 我猜 他们的 HTML 包含这样的内
  • 如何使用 Google Apps 脚本在电子邮件主题中使用表情符号?

    我正在尝试使用 Google Apps 脚本发送电子邮件 try 1 const subject Hello World try 2 const subject Hello World String fromCodePoint 0x1F60
  • 使用 new-azwebapp 时如何选择运行环境?

    我目前正在构建一个脚本来自动创建天蓝色网络应用程序 前端是用 React 构建的并且部署得很好 后端是使用node构建的 发布时不会运行 我认为默认情况下 New AzWebApp 创建一个 net windows 运行时环境 而我想要一个
  • 为同一路线航行多个处理程序

    正如标题所示 我想在不同的控制器中为 Sails Js 中的同一路线分配多个操作处理程序 我尝试过的 post rest users controller FirstController action someAction controll
  • Visual Studio 2022:更改垂直滚动条中定位区域的颜色

    如何更改图像中突出显示的区域的颜色 该区域显示您所在的位置或要滚动到正在编辑的页面中的位置 我发现能够更改此设置的唯一方法是创建自己的主题 因为 Visual Studio 独立版似乎不支持此功能 幸运的是 有一个很好的扩展名为Visual
  • 将 sp_executesql 与 params 一起使用会抱怨需要声明变量

    我正在尝试创建一个使用 sp executesql 的存储过程 我已经仔细观察了很久here 但我看不到我在代码中做错了什么 一般来说 我对存储过程 sql 服务器功能很陌生 所以我猜我错过了一些简单的东西 存储过程更改发生得很好 但是当我