【发布时间】:2021-01-06 15:23:49
【问题描述】:
这是我的表“LoadData”
| Sequence_Code | ID | Current_Year | Record_Date | Status |
|---|---|---|---|---|
| 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 的输入参数。
【问题讨论】:
-
你不能真正做到这一点。您需要逐行执行,例如,在
select中。 -
你还需要一个函数吗?您在这里的预期结果是什么?此外,函数不能执行
UPDATE语句,因此它不能更新所述表。 -
也许您需要交叉应用或外部应用。有什么要求?和原来的查询/表?
-
@Larnu 我同意函数不会更新,我的意思是我的函数正在生成值,我可以在表中更新它。我关心的是多个ID,我们如何将具有status='A'和Sequence_Code IS NULL的多个ID一一传递给函数,所以它会继续生成值,更新语句会更新它。
-
@GordonLinoff .. 是的.. 我们需要逐行进行.. 这就是为什么我写了如果需要请更改参数,因为我需要为 ID 的状态为“A”生成 Sequence_Cd .
标签: sql sql-server tsql sql-server-2017