在一个变量 sql 中接收多个值

Posted

技术标签:

【中文标题】在一个变量 sql 中接收多个值【英文标题】:Receive several values in one variable sql 【发布时间】:2014-07-30 02:23:15 【问题描述】:

我想接收多个数据并将其存储在 SQL Server 中的变量中,但是存储过程和函数不允许将表类型设置为变量,还有其他方法吗?

我需要它,因为我想制作一个从Java发送数据的方法,但是我不知道在使用函数或存储过程时如何将多个数据发送到单个变量,如果有任何方法可以做到这一点,如果你让我知道,我将不胜感激。

【问题讨论】:

也许这会帮助您开始了解光标。 ***.com/questions/1479680/… @Charlesliam 在这种情况下 CURSOR 如何帮助我? 一种方法可能是设置一个临时表,用代码中的数据填充它,然后在存储过程中使用这个临时表。 @Szymon 我想过,但是如果是临时表,我将如何从 Java 发送数据? 我不完全确定 Java 中的详细信息,但我相信您可以发送诸如 create table #name...insert into #name values... 之类的查询 【参考方案1】:

如果必须,解决将类似表的数据结构传递给存储过程/函数的问题的一种方法是使用临时表:

    从您的代码中创建一个临时表(例如#yourname)并向其中插入记录。您可以使用create tableinsert into 执行此操作,如果需要,将所有数据分批发送,例如

    create table #yourname (col1 int); insert into #yourname values (1); insert into #yourname values(2);

    在存储过程中使用带有填充数据的表。

【讨论】:

您能否举个例子说明您给出的答案,实际上这就是我们在 cmets 中讨论的内容,谢谢 @NonExistent 添加了一个示例。 感谢您的编辑,您知道在单个变量中将许多数据发送到 sql server 的其他方法吗? 我对 Java 不太确定。在 .NET 中,您可以为存储过程创建一个表变量参数,并从代码中传递一个 DataTable。

以上是关于在一个变量 sql 中接收多个值的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server:在存储过程中的变量中存储多个值

PL/SQL练习复合变量: 可以一次传递多个值到变量中。

函数基础一 --

python中函数的基本结构及参数

C#定时器接收定时发送和处理接收socket异步通信,接收值放在静态变量里,有时候收到的数据不完整。

获取单个变量中的多个值并使用它与另一个变量中的单个值进行比较