问题标签 [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 - 将 exec sp_executesql 转换为普通查询的简单方法?
在使用 Profiler 和 SSMS 处理调试查询时,我从 Profiler 复制查询并在 SSMS 中测试它们是很常见的。因为我使用参数化 sql,所以我的查询都作为 exec sp_executesql 查询发送。
我将把它转换成普通查询以便于编辑(智能感知、错误检查、行号等):
当然,查询越大越复杂,就越难做到这一点。而且,当您来回多次时,可能会很痛苦,并且会占用大量时间。
是否有一种简单的(例如,宏命令)方法可以将 muh executesql 转换为更方便的东西?
sql - 使用 SP_ExecuteSql 访问远程服务器的完全限定表名
尝试更新链接服务器 (SQL 2000/2005) 上的表,但我的服务器名称不会提前知道。我正在尝试这个:
这会返回:
有任何想法吗?无论如何我查看参数绑定后正在执行的SQL语句?
sql - 带有“IN”语句的 sp_executesql
我正在尝试使用 sp_executesql 来防止 SQL 2005 中的 SQL 注入,我有一个像这样的简单查询:
但是,当我使用 sp_executesql 执行以下操作时,它不会返回任何内容。
这是我测试过的:
请帮忙....我做错了什么?
sql-server - 在 sp_executesql 中使用 LIKE
SET @whereCond = @whereCond + ' AND name LIKE ''%'' + @name + ''%'''
这里有什么问题吗?在生成 where 条件后,我使用 执行它sp_executesql
,但我确实得到了任何东西。当我在没有 sp 的情况下选择相同的东西时,没关系。
如何在 sp_executesql 中使用 LIKE?你能举一些例子吗?
谢谢你。
更新
第一个查询返回值,第二个查询不返回任何内容。
有什么不同?
sql-server - 如何存储从 sp_executesql 返回的多个值或值列表?
UPDATE : This is what I did
-
But this is not returning records although if I see the query is right and returns records..
大家好,我正在使用 sp_executesql 执行动态 sql 语句,这就是我目前正在做的事情 -
但是,如果我单独运行动态 sql 查询,则当我获取记录列表时,上述内容只能获得单个值。如何存储执行动态 sql 返回的值列表?并返回记录..并返回记录..但这
sql - 使用“执行 sp_Executesql”时的权限
我有一个数据库,所有访问都由存储过程控制。DBA 希望避免让用户直接读/写访问基础表,我可以理解。因此,所有数据的更新和选择都是通过存储过程完成的。基本上,他创建了一个角色,该角色对数据库中的所有存储过程具有 EXECUTE 权限,并赋予用户该角色。
问题是其中一个存储过程动态构建了一个 SQl Query 并通过“Execute sp_Executesql”执行它。无需详细介绍,查询是动态构建的,因为它会根据许多用户输入参数而发生显着变化。有问题的存储过程只是一个 SELECT sql 语句,但是我发现仅授予存储过程 EXECUTE 权限是不够的。存储过程中引用的使用“Execute sp_Executesql”的基础表需要被授予“datareader”访问权限,否则存储过程将失败。
关于如何纠正这个问题的任何想法?我真的想限制对表的访问仅限于存储过程,但我需要找到一种方法来解决使用“Execute sp_Executesq”l 的存储过程。谢谢你。
sql - 将 TABLE 变量传递给 sp_executesql
我正在尝试将 TABLE 变量传递给 sp_executesql 过程:
我得到错误:
我尝试在“TABLE”之后省略列规范。我还尝试将表声明为动态 SQL 中的变量。但没有运气...
在我看来,不允许在此过程中将 TABLE 变量作为参数传递?顺便说一句:我正在运行 MSSQL2008 R2。
我对使用像 #workingData 这样的本地临时表不感兴趣,因为我从另一个过程加载工作数据:
我不能直接进入临时变量(对吗?)......
任何帮助表示赞赏!
sql-server-2005 - SQL SP_EXECSQL @VAR 运行“动态”OpenQuery
我有一个 OpenQuery(在 SQL2005 中用于对遗留数据库运行查询)。我正在构建要运行的字符串,以便返回最近 6 个月的数据。
我遇到的问题是'||' 连接。
这适用于遗留系统:
这通过链接的 SQL Server 在 SQL2005 中工作:
这不起作用:
这也不是:
我知道我错过了一些简单的东西......但是|| 将字符串连接在一起会使事情变得混乱,尽管它确实可以在遗留系统上运行。
c# - 清理用户创建的动态 SQL 查询。只允许 SELECT(不允许 INSERT、UPDATE、DELETE、DROP、EXEC 等...)
我正在开发一个带有 Microsoft SQL Server 2005 数据库的 ASP2.0 网站。我需要实现一个功能,允许用户创建一个选择查询(不太复杂),以便网站显示一个带有查询结果集的页面。我的问题是如何清理查询以确保没有插入/更新/删除/删除或其他恶意注入。
此外,我需要将查询封装在“with”子句中,以便可以将标识列添加到结果集中。(我需要在页面上正确显示结果)
我用于格式化查询的 CSharp 代码如下所示(稍微简化):
我想创建一个存储过程来执行查询。我在想这样的事情:
RestrictedUser 看起来像这样:
我的问题是:有没有办法在存储过程中检查 RestrictedUser 的角色以确保它们没有被篡改?如果有的话,还有 raiseerror。你认为这整件事是正确的方法吗?有什么建议吗?
sql-server - 当通过 sp_executeSQL 过程执行时,为什么完全相同的 SQL 查询会产生不同的执行计划?
正如标题所述,我不明白为什么 sp_executeSQL 会生成与从 Sql Management Studio 运行查询完全不同的执行计划。
从 SQL 管理工作室运行时,我的查询需要 3 秒,而通过 sp_executeSQL 在管理工作室中运行的查询需要 5 分钟。
我已经更新了统计数据,并查看了索引,但我仍然记得 sp_executeSQL 的执行计划比直接从我的管理工作室运行 sql 差得多。
所以这是我的问题:为什么以这两种不同的方式运行查询之间的执行计划会有很大差异?
谢谢