问题标签 [sp-executesql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
826 浏览

sql-server - 批量插入作为动态 sql 失败

我在设置批量插入的 SP 中有此代码:

在我的存储过程中,失败并出现以下错误:

无法从链接服务器“(null)”的 OLE DB 提供程序“BULK”中获取行。

但是打印出来的代码:

奇迹般有效。我不知道为什么它在sp_executesql.

0 投票
1 回答
387 浏览

tsql - sp_executesql vs 用户定义的标量函数

在下表中,我存储了一些这样的条件:

在此处输入图像描述

然后,一般来说,在第二张表中,我有以下记录:

在此处输入图像描述

我需要的是使用正确的条件比较这些值并存储结果(让我们在附加列中说“0”表示假,“1”表示真)。

我将在存储过程中执行此操作,基本上我将比较几条到数百条记录。

什么可能的解决方案是使用 sp_executesql 为每一行构建动态语句,另一个是创建我自己的标量函数并使用交叉应用将其调用为 eacy 行。

谁能告诉哪个是更有效的方法?

注意:我知道回答这个问题的最好方法是制作两个解决方案并进行测试,但我希望可以根据缓存和 SQL 内部优化等其他内容来回答这个问题,这将为我节省很多时间,因为这只是更大问题的一部分。

0 投票
1 回答
6665 浏览

sql-server - Try & Catch 中的 sp_executesql

当表 T1 在 MyLinkedServer 中不存在而不是被定向到 Catch 部分时,上述脚本将失败。我想念什么?

只是要清楚一点:原始过程使用参数在过程内部动态构造@SQL。

谢谢!

0 投票
2 回答
238 浏览

stored-procedures - 需要帮助来调试具有存储在表中的 sql 脚本的 T-SQL 存储过程

在这个存储过程中,我从名为M_SopInsert.

SQLScript是列名,并且此表中的每条记录都包含一个执行UPDATE,INSERT或的 SQL 查询DELETE

当我使用 Select 调试它时,我可以看到实际的脚本(在下面评论)。但是脚本本身没有执行,我没有看到任何错误。

我尝试对UPDATE下面的语句进行硬编码,它工作正常。

这里可能是什么问题?

0 投票
3 回答
27524 浏览

sql - sp_executesql 和表输出

我正在 SQL Server 2005 中编写一个存储过程,在给定点我需要执行另一个存储过程。这个调用是动态的,所以我像往常一样使用了 sp_executesql 命令:

但我得到这个错误:

必须声明标量变量“@tempTable”。

如您所见,该变量已声明。我已经阅读了文档,似乎只允许使用 text、ntext 和 image 参数。我怎样才能拥有我需要的东西?

PS:我发现了许多关于 2008 年和更高版本的提示,包括 2005 年的任何提示。

0 投票
0 回答
979 浏览

excel - 如何让 Excel 从工作表上的查询表中可靠地执行 sp_executesql?

在 MS Excel 中,如果您使用 Microsoft Query 创建 QueryTable,并且您的 SQL 查询无法通过 Microsoft Query 直观呈现,则不允许为该查询提供参数。真可惜,所以有一种很棒的技术可以允许参数:

您以 ODBCCALL形式提供查询,它使用参数。

除非它没有。

虽然在某些计算机上它可以完美运行,但在其他计算机上,Excel 在尝试刷新查询表时会引发错误:

  • 对于 SQL Native Client 10:Invalid parameter number
  • 对于 SQL Native Client 11:Procedure or function sp_executesql has too many arguments specified.

使用分析器,我可以看到 Excel(实际上是被 Excel 戳的本机客户端)在实际执行之前正在执行此操作sp_executesql

@p1是应该sp_executesql稍后使用的参数占位符,这就是sp_describe_undeclared_parameters失败的地方。它不期望任何自定义参数sp_executesql- 只有两个内在参数@stmt@params. 如果我从查询中手动删除该,@p1位,它在所有情况下都可以正常执行。

这就是问题所在:在某些计算机上,上述自动生成的内容sp_describe_undeclared_parameters与不必要/错误的,@P1位一起使用,而在某些计算机上却失败了。
我们需要让它在所有计算机上工作。

奇怪的事情要考虑:

  • 在没有问题的计算机中,我看不到任何常见的东西。位数或 Windows 版本似乎无关紧要。
  • 我无法在附加位的情况下手动执行上述查询,@P1- 无论我使用什么工具,我都会收到“参数过多”错误,但是,Excel 能够在感觉时执行它没有问题。我可以通过探查器看到命中服务器的确切查询。也许它与连接设置的一个非常特殊的组合有关,但它们在所有计算机上似乎都是相同的(数据源是使用 SQL Server Native Client 11 的 ODBC 系统数据源,并且所有选项卡上的所有参数都相同)计算机)。
0 投票
2 回答
10759 浏览

sql-server-2005 - sp_executesql 或 exec(@var) 太长。最大长度为 8000

我有大量查询,所以我不能按规则在生产中使用链接服务器。我通过了一个varchar(max)超过 8000 个字符的。

sp_executesql不支持超过 8000 个字符,那么我该如何执行我的字符串?

0 投票
1 回答
14717 浏览

sql-server-2008-r2 - 将 sp_executeSQL 的参数值部分指定为参数

我正在使用 SQL Server 2008 R2。我需要为下面的 T-SQL 的最后一部分使用一个参数。

在这一部分中,指定了 sp_executesql 的参数值,但我想动态地提供它。

0 投票
1 回答
827 浏览

sql - 具有可变数量参数的 EXEC sp_executesql

我正在尝试实现用户可自定义的搜索,最后我进入了 SQL 部分。用户可以选择可变数量的标准,然后我将所有内容发送到表值参数中的存储过程。我想出了如何创建 sql 字符串的逻辑,但我被困在发送参数的部分。一个伪代码示例是:

我的问题是如何设置参数,当我不知道它们有多少时?

0 投票
1 回答
216 浏览

sql-server - 跳过(或不提供可选参数)

如何跳过(或不提供可选参数)Database.ExecuteSqlCommand

我尝试了以下没有任何运气..它仍然希望我提供@Frequency参数

编辑:

将来,“@Frequency”参数将从存储过程中完全删除。仍有一些遗留应用程序仍在提供,@Frequency并且无法在所有应用程序中更改它。新创建的应用程序不会提供@Frequency