二开案例.数据库.获取种子值(基础资料)

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.数据库.获取种子值(基础资料)

【应用场景】

非插件使用场景下,新增基础资料时,获取基础资料主表的种子值。

注意:所有的基础资料主表,都共享同一个种子表:Z_BAS_ITEM



【示例代码】

以物料为例,获取物料主表的种子值的SQL脚本如下:

【SQL Server账套】

/*dialect*/
DECLARE @count INT
-- 这里设置要获取的种子值的数量
SET @count = 1
DECLARE @icount INT
SET NOCOUNT ON
SET @icount = 0
DECLARE @OutIdTable TABLE ( Id BIGINT )
DECLARE @lastValue INT
DECLARE @trancount INT
SET @trancount = @@TRANCOUNT
IF @trancount > 0
    SAVE TRANSACTION sp
ELSE
    BEGIN TRANSACTION
BEGIN TRY
    IF @count <= 100
        BEGIN
            WHILE @icount < @count
                BEGIN
                    INSERT  INTO Z_BAS_ITEM
                            ( Column1 )
                    VALUES  ( 0  -- Column1 - int
                              );
                    INSERT  INTO @OutIdTable
                            ( Id )
                    VALUES  ( SCOPE_IDENTITY() );
                    SET @icount = @icount + 1
                END
            SELECT  Id
            FROM    @OutIdTable;
        END
    ELSE
        BEGIN
            UPDATE  Z_BAS_ITEM WITH ( TABLOCK )
            SET     Column1 = Column1;
            EXEC sp_executesql N'insert into Z_BAS_ITEM(column1)
select top(@count) 1 from master..spt_values x cross join master..spt_values y  cross join (select top 200 * from master..spt_values) n',
                N'@count int', @count = @count;
            SELECT  Id
            FROM    Z_BAS_ITEM WITH ( TABLOCK );
        END
    IF @trancount > 0
        ROLLBACK TRANSACTION sp
    ELSE
        ROLLBACK TRANSACTION
END TRY
BEGIN CATCH
    IF @trancount > 0
        ROLLBACK TRANSACTION sp
    ELSE
        ROLLBACK TRANSACTION
    DECLARE @errmessage NVARCHAR(4000)
    DECLARE @errserverity INT
    DECLARE @errstate INT
    SELECT  @errmessage = ERROR_MESSAGE() ,
            @errserverity = ERROR_SEVERITY() ,
            @errstate = ERROR_STATE()
    RAISERROR(@errmessage,@errserverity,@errstate)
END CATCH

执行结果:

上传图片



【Oracle账套】

/*dialect*/
SELECT Z_BAS_ITEM.nextval AS fkey FROM dual CONNECT BY LEVEL<=1

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696


二开案例.数据库.获取种子值(基础资料)

【应用场景】非插件使用场景下,新增基础资料时,获取基础资料主表的种子值。注意:所有的基础资料主表,都共享同一个种子表:Z_BAS_ITEM。...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息