问题标签 [stored-procedures]

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 投票
4 回答
21431 浏览

MySQL 存储过程中是否有任何列表数据类型,或模拟它们的方法?

我想在 MySQL 中创建一个以列表为参数的存储过程。例如,假设我希望能够在一次调用中为一个项目设置多个标签,那么我想要做的是定义一个过程,该过程采用项目的 ID 和要设置的标签列表。但是,我似乎找不到任何方法来做到这一点,据我所知,没有列表数据类型,但是可以以某种方式模拟它吗?标签列表可以是逗号分隔的字符串,可以以某种方式拆分和循环吗?

您通常如何处理 MySQL 存储过程中的列表?

0 投票
9 回答
52700 浏览

在 SQL Server 上插入更新存储过程

我编写了一个存储过程,如果记录存在,它将进行更新,否则它将进行插入。它看起来像这样:

我以这种方式编写它的逻辑是,更新将使用 where 子句执行隐式选择,如果返回 0,则插入将发生。

这样做的替代方法是进行选择,然后根据返回的行数进行更新或插入。我认为这是低效的,因为如果您要进行更新,它将导致 2 次选择(第一次显式选择调用和第二次隐式在更新的位置)。如果proc要进行插入,那么效率就没有区别。

我的逻辑在这里合理吗?这是您将插入和更新组合到存储过程中的方式吗?

0 投票
22 回答
110513 浏览

LINQ-to-SQL 与存储过程?

我查看了 StackOverflow 上的“LINQ 初学者指南”帖子(LINQ 初学者指南),但有一个后续问题:

我们即将启动一个新项目,其中几乎我们所有的数据库操作都将是相当简单的数据检索(项目的另一部分已经写入数据)。到目前为止,我们的大多数其他项目都使用存储过程来处理这些事情。但是,如果更有意义,我想利用 LINQ-to-SQL。

所以,问题是:对于简单的数据检索,哪种方法更好,LINQ-to-SQL 还是存储过程?有什么具体的优点或缺点吗?

谢谢。

0 投票
47 回答
76263 浏览

将 SQL 保存在存储过程与代码中的优缺点是什么

在 C# 源代码或存储过程中保留 SQL 的优点/缺点是什么?我一直在与朋友讨论我们正在开发的一个开源项目(C# ASP.NET 论坛)。目前,大部分数据库访问是通过在 C# 中构建 SQL 内联并调用 SQL Server DB 来完成的。因此,我正在尝试确定对于这个特定项目,哪个是最好的。

到目前为止,我有:

代码中的优点:

  • 更易于维护 - 不需要运行 SQL 脚本来更新查询
  • 更容易移植到另一个数据库 - 无需移植

存储过程的优点:

  • 表现
  • 安全
0 投票
3 回答
1204 浏览

用于调试存储过程的独立工具

我一直在为 STP(存储过程)寻找一个好的免费调试器,因为我需要对其中的一些进行更改,作为我最近项目的一部分。存储过程存储在独立.sql文件中,而不是代码中。

在我的情况下,调试器会加快速度。任何人都可以推荐任何可用于此的工具吗?

0 投票
5 回答
884 浏览

查询以字段为列的联合表

我不太确定这是否可能,或者是否属于数据透视表的类别,但我想我会去找专业人士看看。

我有三个基本表:Card、Property 和 CardProperty。由于卡片没有相同的属性,而且同一属性通常有多个值,因此我决定使用联合表方法来存储数据,而不是在卡片表中使用非常大的列结构。

属性表是一个基本的关键字/值类型表。所以你有关键字 ATK 和分配给它的值。还有另一个名为 SpecialType 的属性,一张卡片可以有多个值,例如“Sycnro”和“DARK”

我想做的是创建一个视图或存储过程,它为我提供卡 ID、卡名称和所有分配给卡的属性关键字,作为指定卡的 ResultSet 中的列和它们的值。所以理想情况下,我会有一个结果集,如:

我可以这样计算我的结果。

我想甚至更巧妙的是根据关键字将属性简单地连接在一起,所以我可以生成一个 ResultSet ,如:

..但我不知道这是否可行。

帮我stackoverflow Kenobi!你是我唯一的希望。

0 投票
22 回答
57520 浏览

哪个更好:即席查询或存储过程?

假设您出于某种原因不能使用 LINQ,将查询放在存储过程中是一种更好的做法,还是对数据库执行即席查询(例如,为了参数而使用 SQL Server)也是一种很好的做法?

0 投票
3 回答
451 浏览

存储过程和超时

我正在运行一个长过程存储过程。

我想知道在启动对存储过程的调用后是否会出现超时或与数据库断开连接的情况。它是否仍在工作并在服务器上实施更改?

0 投票
3 回答
7664 浏览

异步存储过程调用

是否可以从另一个存储过程异步调用存储过程?

编辑:具体来说,我正在使用 DB2 数据库。

0 投票
9 回答
40739 浏览

SQL Server 快进游标

人们普遍认为,应尽可能避免在存储过程中使用游标(替换为基于集合的逻辑等)。如果您考虑需要迭代某些数据并且可以以只读方式执行的情况,那么快进(只读转发)游标是否比说 while 循环效率低下?从我的调查来看,游标选项通常更快并且使用更少的读取和 cpu 时间。我没有进行任何广泛的测试,但这是其他人发现的吗?这种类型的游标(快进)是否会带来额外的开销或资源,这些开销或资源可能很昂贵,我不知道。

所有关于不使用游标的讨论真的是在基于集合的方法可用时避免使用游标,以及使用可更新游标等吗?

谢谢