gpt4 book ai didi

sql - T SQL - 通过存储过程传递表变量

转载 作者:行者123 更新时间:2023-12-04 21:51:13 24 4
gpt4 key购买 nike

假设我有一个存储过程:

exec my_sp ?,?

我可以通过添加两个值来执行这个存储过程,例如

exec my_sp 'value 1','value 2'

现在这就是事情变得棘手的地方......

例如我有一张 table

1  |  2
aa bb
cc dd

等等……

现在我想传递我的表值并创建一个结果表,例如

exec my_sp 'aa','bb'

exec my_sp 'cc','dd'

等等…………

我怎样才能做到这一点?

最佳答案

我建议您更改程序以接受表类型作为输入参数而不是变量

然后您可以一次性将表中的所有值传递给过程,并完成过程中所有行的操作。

创建表类型

Create type my_sp_param as table (col1 varchar(2),col2 varchar(2))

改变程序

Alter procedure my_sp (@param my_sp_param)
as
..

调用表类型输入的过程

declare @param my_sp_param 

insert into @param (col1,col2)
select [1],[2] from yourtable

exec my_sp @param

如果您无法更改过程,则必须使用 CURSOR 或 WHILE 循环将每一行作为输入传递给您的过程,强烈不建议这样做。

关于sql - T SQL - 通过存储过程传递表变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35607875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com