moh*_*sal 5 sql sql-server stored-procedures
我想在存储过程中执行一个查询,它应循环所有数组值.
例如:
declare arrayStoreID={1001,2400,2001,5000}
for(int i=0;i<arrayStoreID.length;i++)
{
select
col_name1,col_name2
into
@temp_table
from
Table_Name
Where
storeID=arrayStoreID[i]
}
Run Code Online (Sandbox Code Playgroud)
我想像上面那样表现.谢谢
First Store ID temporary table如下所示
create table #Table_Name(storeID INT, col_name1 varchar(50), col_name2 varchar(50))
insert into #Table_Name values
(1001, 'Test1', 'Test2'),
(5000, 'Rest1', 'Rest2'),
(1122, 'Best1', 'Best2')
Run Code Online (Sandbox Code Playgroud)
然后你可以加入你想要获取记录的表格,如下所示,这种方法比通过loop你的要求不是more complicated真实的要好得多.
select t.col_name1,
t.col_name2
INTO #new_table
from #Table_Name t
inner join #tmp_ids ti on ti.id = t.storeID
Run Code Online (Sandbox Code Playgroud)
它将返回与上面匹配IDs并插入的
两条记录#new_table
select * from #new_table
OUTPUT:
col_name1 col_name2
Test1 Test2
Rest1 Rest2
Note: you can use `table variable` as well
Run Code Online (Sandbox Code Playgroud)
ArraySql Server 中不存在对象。
可以创建一个临时表,如下
CREATE TABLE #mytemp (<list of field>)
Run Code Online (Sandbox Code Playgroud)
您可以在其中存储您的信息。
您可以执行 JOIN 操作以将其与其他表一起使用,或者如果您想创建一个循环,您可以定义一个CURSOR来处理临时表的每一行
| 归档时间: |
|
| 查看次数: |
26194 次 |
| 最近记录: |