循环遍历表值参数中的每一行

时间:2015-06-16 11:29:42

标签: sql-server

我需要一些帮助来循环遍历Table值参数的每一行。

我有用户定义的类型

CREATE TYPE [dbo].[PCS_SPEC_ATTR_VALUE] AS TABLE(
    [ATTR_NAME] [varchar](256) NULL,
    [ATTR_VAL] [varchar](4000) NULL
)

我在我的程序中使用此类型

@P_TYPE VARCHAR(4000),
@P_SCOPE  VARCHAR(4000),
@P_PART_CLS_ATTR PCS_SPEC_ATTR_VALUE readonly

我使用P_PART_CLS_ATTR作为输入,我可以将数据作为attr_name和attr_value插入。我想逐行访问插入值的每一行。我需要获取属性名称和值处理它们并返回插入..可以任何一个帮助如何逐行访问值?

1 个答案:

答案 0 :(得分:4)

下面是游标提取的示例代码段。注释是您可以插入“处理它们并返回以插入”代码的地方。

DECLARE
      @ATTR_NAME varchar(256)
    , @ATTR_VAL varchar(4000);

DECLARE NameAndValue CURSOR LOCAL FAST_FORWARD FOR
    SELECT 
          ATTR_NAME
        , ATTR_VAL
    FROM @P_PART_CLS_ATTR;

OPEN NameAndValue;
WHILE 1 = 1
BEGIN
    FETCH NEXT FROM NameAndValue INTO @ATTR_NAME, @ATTR_VALUE;
    IF @@FETCH_STATUS = -1 BREAK;
    --process returned @ATTR_NAME and @ATTR_VALUE values here
END;
CLOSE NameAndValue;
DEALLOCATE NameAndValue;