将数据列表存储到变量存储过程中

store list of data into variable store procedure

首先,如果这个问题对你来说看起来很简单,我很抱歉。因为,我不知道如何写 sp 我发布了这个问题:

基本上我想编写存储过程,我的用例是:

  1. select 与 table

    不同的 ID

    select ID 来自 [table_name]

  2. 迭代获取的所有 ID

  3. 再次查询另一个 table 并将此 ID 作为参数

  4. 获取数据

任何人都可以建议如何实现这一目标吗?

SELECT 来自 [TABLE2] 的数据 WHERE TABLE2.TABLE1ID IN (SELECT 来自 [TABLE1] 的不同 ID)

使用内部查询概念或内部联接概念。

根据您的问题,我假设 Stored Procedure.

不需要输入参数
CREATE PROCEDURE YourProcedureName --change it to your SP name
AS
BEGIN
    
    SET NOCOUNT ON;
    --Choose any approach that suits your case better from bellow and remove the rest approach once you finalize it

    /*1st Approach*/
    SELECT * FROM TABLEB 
    WHERE ID IN (SELECT DISTINCT ID FROM TABLEA)

    /*2nd Approach*/
    SELECT * FROM TABLEB B
    JOIN TABLEA A
      ON B.Id = A.Id

    /*3rd Approach which you are expeting*/
    --Implementing CURSOR
    
    DECLARE @Id INT
    DECLARE Table_Cursor CURSOR FOR 
    SELECT 
    DISTINCT Id FROM TABLEA

    OPEN Table_Cursor  
    FETCH NEXT FROM Table_Cursor INTO @Id 

    WHILE @@FETCH_STATUS = 0  
    BEGIN  
         -- you can insert it into a table if you need
         SELECT * FROM TABLEB WHERE Id = @Id

         FETCH NEXT FROM Table_Cursor INTO @Id
    END 

    CLOSE Table_Cursor  
    DEALLOCATE Table_Cursor

END
GO