问题标签 [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 投票
1 回答
691 浏览

sql-server - 基于表/列存在的存储过程逻辑

我有大量的存储过程,它们从我们正在处理的各种环境中复制一个实体(跨越 30 多个表):Dev/Integration/PreProd/Prod

这个想法有时是数据库结构从一个平台更改为另一个。一般来说,我们会进行一些小的更改,例如将 1-2 列移动到新表或将新表添加到结构等。

考虑到这种复制的复杂性,我希望在所有环境中都拥有这些程序的单一版本,无论与数据库结构相关的差异如何,以便可以从任何环境复制到另一个环境。例如,如果该列存在于srcdest => 中,则执行该逻辑,否则执行其他逻辑等。

这个想法是我不能在存储过程中使用不存在的列,即使代码检查列的存在并且永远不会执行该代码分支。

最好的选择是使用 编写代码sp_executesql,但代码变得非常复杂:考虑到一旦结构更改在所有环境中对齐,我将不得不丢弃部分代码,这太过分了。

0 投票
1 回答
140 浏览

tsql - sp_executesql 语法错误

我正在尝试学习和使用,sp_executesql即使使用这个简单的 SQL 语句,我也被困住了。

我收到此错误,无法弄清楚为什么...

消息 102,级别 15,状态 1,第 6 行
“@WHERE”附近的语法不正确。

0 投票
4 回答
2123 浏览

c# - 如何将行值从sql server转换为c#中的字符串

我有这样的方法

现在accountId保存查询,但不保存执行查询后返回的值。我想要那个字符串中的值。谁能帮我?

0 投票
1 回答
45 浏览

sql - 减少重新编译,sp_execute

当重新编译查询的问题时,我的服务器上的问题很糟糕,我们在这台服务器上报告,这是动态查询所必需的,我在这里研究了这个问题的解决方案。

当您在变量中放置单个参数时,但是当我添加逗号时不会返回任何内容时,我已经从试用版中进行了数十次转换,替换...

回想数据来自报告,很多都不是我做的,所以我必须要对待varchar这个硬方法

谢谢您的帮助。

0 投票
2 回答
524 浏览

sql - sp_executesql 给出未闭合的引号错误?

我已经编写了简单的存储过程并使用 sp_executesql 执行以解决引号错误和 sql 注入,但是当我在参数中传递单引号时它仍然显示我Unclosed quotation mark after the character string ''.

0 投票
0 回答
161 浏览

reporting-services - 几天后 SSRS 报告动态查询超时

我们使用 SSRS 2012 和许多报告,这些报告由 Query.CommandText 对执行动态 sql (sp-executesql) 的存储过程的引用驱动。这些是从用户指定报告、条件等的 Web 应用程序中使用的。几天后,报告请求将超时,即使底层存储过程在几秒钟内执行(相同的存储过程提供搜索结果屏幕)和报告)。其他不使用动态 sql 的报表继续正常执行。我们找到的唯一补救措施是重新启动 SSRS 服务。在初始启动后,相同的报告将在几秒钟内执行。

SSRS 日志似乎没有指出任何问题,尽管我当然不是阅读它们的专家。将慢速与快速进行比较似乎只是在开始和结束之间均匀分布的时间戳不同。我们确实看到“ReportProcessingException:位置 xx 处的字段没有数据”,但是在慢速和快速运行中。当报告处于慢速模式时,从报告门户运行报告大约需要 10 分钟。

我的怀疑是一些缓存正在进行,SSRS 正在影响 SQL 执行计划。

任何关于更多细节的建议或要求都将受到欢迎。

0 投票
2 回答
1748 浏览

sql-server - sp_executesql 更新临时表

我经常使用,并且可以很容易地在 Internet 上找到用于从命令插入临时表的文档:sp_executesql

但是,我无法找到任何文档,是如何从更新临时表sp_executesql,例如column2从存储过程的结果将已经存在的设置为新值。

这可能吗?

0 投票
4 回答
4399 浏览

sql-server - 仅通过 Select 语句在临时表中动态插入数据

我想在临时表中插入动态记录。我不想声明这个表。我希望在运行时定义它的列。我这样做是因为表“合同”的定义将来可能会改变。所以临时表(#x)应该相应地改变。这将在存储过程中。

我尝试了以下方法(被标记为答案,但没有一个有效)



0 投票
1 回答
1740 浏览

sql-server - 使用 sp_executesql 的非最佳执行计划

我在带有一些参数的 sql select 语句中遇到性能缓慢的问题,对于同一个查询,使用这种sp_executesql方式执行这个选择需要两倍于内联方式的时间。

问题是在 sp_execute-way sql server 中没有使用最佳执行计划。尽管计划不同,但似乎在这两种情况下都正确使用了表的索引。我真的不明白为什么性能如此不同。

我的原始查询更复杂,但为了弄清楚发生了什么,我将原始查询简化为具有 3 个表和 2 个连接的选择。主要区别是在优化中使用哈希匹配,我真的不知道这是什么意思,但这是我能看到的唯一区别。

最优计划(哈希匹配,超过 3 秒)

在此处输入图像描述

错误的计划(没有哈希匹配,与上面相同的索引,超过 12 秒)

在此处输入图像描述

  1. 我认为我的问题不是“参数嗅探”,在我的情况下,对于所有不同的参数值,查询总是很慢,因为执行计划总是不正确的。

  2. OPTION (RECOMPILE)没有帮助,sp_executesql继续运行缓慢并且内联方式需要更多时间(因为查询总是编译执行计划)

  3. 表的统计信息已更新

  4. 我必须使用sp_executesql方式,因为报告服务似乎将选择封装在sp_executesql调用中

有人知道为什么会sp_executesql生成与内联查询不同的(错误的)执行计划吗?


编辑:查询没有使用相同的索引我猜是因为执行树不一样,sqlserver随意使用索引,附加你可以找到新的执行计划来强制使用相同的索引,性能现在更差,从慢查询12秒到15分钟以上(我已经取消)。我真的对更快地运行这个特定查询不感兴趣,因为我说这不是我正在处理的真正查询,我想弄清楚为什么内联查询和sp_executesql-之间的执行计划如此不同询问。

有什么神奇的选择sp_executesql可以正常工作吗?:)

最佳 在此处输入图像描述

减缓 在此处输入图像描述

0 投票
0 回答
43 浏览

javascript - 如何通过javascript获取数据库的平均记录时间

我可以将一个操作插入数据库的时间,但我无法获得 1000 次操作的时间。当请求发送成功时,我会在函数中调用结束时间。

我不能在这段代码中使用循环,因为操作是异步执行的,并且在 1000 次操作之后我无法获得结束时间。