流程实例节点--如何通过sql判断对应的真实数据存在原创
金蝶云社区-eris
eris
56人赞赏了该文章 204次浏览 未经作者许可,禁止转载编辑于2024年05月31日 17:08:36

一、流程节点取到的数据表名和内码,如下图:

image.png

二、可以通过下面脚本来判断真实数据的存在

--1、定义变量

Declare @tableName varchar(100) ; --表名

Declare @PrimaryKey varchar(100); --表中主键列名

Declare @PkValue bigint ; --主键值

Declare @DynSql NVARCHAR(1000); --动态脚本

Declare @ResultValue INT; --返回结果

Declare @DynSqlParam NVARCHAR(200);  --动态脚本参数


--2、得到表名和主键值

select @tableName=FTTABLENAME,@PkValue=FTID from T_BF_INSTANCEENTRY where FROUTEID='6513e0ce4b1ce6'


--3、得到表对应的主键列名

SELECT  @PrimaryKey =t1.column_name

FROM information_schema.table_constraints t0

JOIN  information_schema.key_column_usage t1 

      ON t0.constraint_name = t1.constraint_name

WHERE  t0.constraint_type = 'PRIMARY KEY' AND t0.table_name = @tableName


--4、构建动态脚本

SET @DynSql = N'SELECT @ResultValue = COUNT(*) FROM '+ @tableName+' where '+ @PrimaryKey +'= @PkValue1'

--5、定义动态脚本中的参数

SET @DynSqlParam = N'@PkValue1 bigint,@ResultValue INT OUTPUT'

--6、执行脚本

EXEC sp_executesql @DynSql, @DynSqlParam, @PkValue1=@PkValue, @ResultValue=@ResultValue OUTPUT

--7、结果

select @ResultValue


赞 56