如何将列值一一传递给 SQL 函数?

问题描述

这是我的表“LoadData”

Sequence_Code ID Current_Year Record_Date 状态
17AA 310001 2017 2017-01-01 S
18AB 310002 2018 2018-02-22 A
19AC 310003 2019 2019-02-10 S
NULL 310004 2019 2019-02-20 A
NULL 310005 2020 2019-03-20 A
NULL 310006 2020 2019-04-20 A

我们如何将仅那些记录 where Sequence_Code is NULL 且状态为 A 的“ID”一一传递给函数

我的功能

CREATE FUNCTION [dbo].[GetNextSequenceCode_TEST] 
    (@LastSeqAlphabet varchar(50))
RETURNS varchar(100)
AS
BEGIN 
    -- will generate and update a sequence code in the same table
END 

如果需要,请更新 fFunction 的输入参数。

解决方法

也许我过于简单化了,因为我不完全理解您的要求,但可以这样简单:

UPDATE LoadData
SET
    Sequence_Code = dbo.GetNextSequenceCode_TEST ( ID )
FROM LoadData AS ld
WHERE
    ld.Sequence_Code IS NULL
    AND ld.[Status] = 'A';