问题标签 [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.
sql-server - 使用动态 SQL 与参数调用 sp_executesql 的性能差异
鉴于:
这些不同的执行方法之间是否存在已知的性能差异?:
“你为什么要问?” 你问?我试图找到一种方法来完全基于元数据执行存储过程,控制存储过程将物理执行所有其他配置的(在元数据中)存储过程,除了元数据中定义的内容外,对它们一无所知。在这个控制器 SP 中,我无法(在任何实际意义上)知道并声明每个可能必须调用的存储过程所需的特定物理参数(及其所需的数据类型)——我正在尝试找到一种方法来执行它们完全通用,同时仍希望保持良好的性能(重用查询计划等)。
sql-server - SQL Server:使用存储过程中的参数更新动态生成的表中的记录
我必须创建一个存储过程,我将在其中tableName, columnName, id
作为参数传递。任务是从已传递的表中选择columnName
已传递的记录id
。如果找到记录,则使用一些固定数据更新记录。还要实现事务,以便我们可以在出现任何错误时回滚。
数据库中有数百个表,每个表都有不同的模式,这就是我必须通过的原因columnName
。
不知道什么是最好的方法。我正在尝试将记录选择到临时表中,以便我可以根据要求对其进行操作,但它不起作用。
我正在使用这段代码:
我收到一个错误
无效的对象名称“#TempTable”
也不确定这是否是获取数据然后更新数据的最佳方法。
sql-server - TSQL sp_executesql
我有一个简单的表:
有两列eins
und zwei
,都是 varchar(50)
与价值观
1 和 2 在相应的列中。
查询
给出正确的结果1
以下代码还在1
结果窗口中给出了正确的结果:
但是,它不使用输出参数,我需要结果进行进一步处理。
所以,我尝试:
预期结果为1
。但是:结果是eins
,即列名,而不是值。
我怎样才能查询类似的东西Select @Variable from @Variable2 where @variabel3 = @Variable4
?
表和列可以是非变量,如果需要,最重要的是Select @Variable
. 我需要这个值进行进一步处理。
sql - 如何使用 sp_executesql 避免 SQL 注入
在下面的示例代码中,表名是一个输入参数。在这种情况下,如何避免使用sp_executesql
. 下面是示例代码,我试图用sp_executesql
它来避免它,但它不起作用。谁能告诉我如何纠正它?
输出:打印消息:
所有输入参数都被完全替换,并删除了一行。请让我知道如何处理这种情况。
sql-server - SQL Server 从 sp_executesql 返回表值变量
我需要将来自动态生成的 SELECT 语句的几行插入到表值变量中,即 INSERT INTO ... SELECT ...
我正在尝试通过 sp_executesql 来实现。如何从 sp_executesql 返回这个填充的表值变量?
错误:
但是,它接受另一种方式,即如果 @Data 用作输入(将 OUTPUT 替换为 READONLY)。
sql - sp_executesql 未显示所需结果
我正在 SQL Server 中处理 SQL 并遇到这个问题,
我已经在没有参数的情况下测试了这个 sql 语句并且它正在工作,但是像这样它在 @max 中显示为空。请帮我看看我哪里出错了!!
sql-server - 如何让 sp_executesql 接受不是 nvarchar 的参数值
我正在尝试构建一个存储过程中的动态 SQL 语句。这是它的简化版本:
我遇到的问题是sp_executesql
仅适用于 Unicode 数据。所以我得到一个@UserID
整数参数的转换错误:
转换 nvarchar 值 'SELECT * FROM dbo.Orders WHERE UserID = ' 时转换失败
我必须在存储过程开始时声明我的参数,并让用户提供这些值。到目前为止,我看到的使用示例sp_executesql
显示了在运行时定义的参数及其值sp_executesql
。这对我不起作用,因为我需要在同一存储过程的其他区域重用参数。
如果不将所有参数指定为 type ,我怎么能解决这个问题nvarchar
?
c# - 为什么 exec sp_executesql 比 inline sql 慢得多?
我已经在管理工作室测试了这个查询,它执行得非常快(不到一秒)
执行计划如下:
然后我将它移到 C# ado.net 中,它像这样运行
这个运行速度非常慢(大约 30 秒)。执行计划如:
我不知道是什么让这两个计划不同。Sql server 是带有 SP2 的 2008 R2,我已经尝试过参数提示和 OPTION (RECOMPILE),两者都不适合我。
sql-server - SQL server 2012 - 从动态脚本返回变量值
我正在尝试运行一个动态脚本,然后返回变量,这样我就可以传递给我的脚本的其余部分。在 Google 的帮助下,我有几种方法,但我认为我的语法仍然不正确,因此返回错误或空值。
有人可以告诉我哪里出错了。
例如:要返回变量@table_name ASIA 的值是数据库,它被设置为附加到从表中检索到的表名的变量,而 T5148 是表中的 id 以将表名转换为原样一个变量。我已经设置了这个变量,因为当其他脚本循环时,这个脚本就坐在那里
谢谢
sql - 动态查询不起作用
我正在尝试执行传递给它的参数的动态查询,但它不起作用:
错误信息是:
消息 102,级别 15,状态 1,第 3 行 '.' 附近的语法不正确。