函数要里执行UPDATE语句,得到单据流水号,如何处理,其它方式有办法实现吗?
-- ==================================================
-- 名称:得到单据流水号
-- 实现功能:取得对应表的计数器,实现流水号功能.
-- 调用示例:SELECT F_LT_GetOrderNo(FId) as FID, * from Tab1 T1
left outer join T_OrderList T2 on T1.FTabID = T2.FID
-- ==================================================
CREATE TABLE T_OrderList(
FID int IDENTITY (1, 1) NOT NULL,
FIncCount int -- 计数器
)
CREATE FUNCTION F_LT_GetOrderNo(@ID int)
AS RETURN VARCHAR(32)
DECLARE @OrderNo int
SELECT @OrderNo = FIncCount FROM T_OrderList WHERE FID = @ID
-- 取得编号后,计数器加1
UPDATE T_OrderList SET FIncCount = FIncCount +1 -- 函数中不允许执行UPDATE,这种情况要怎么处理.
RETURNS @OrderNo