SSIS执行SQL任务 - 验证MDS模型

时间:2017-10-09 20:14:08

标签: sql-server ssis

我正在开发一个SSIS包,它将数据从数据源泵送到MDS数据模型\实体。

我有一个执行SQL任务,它应该验证MDS Facility实体。

这是脚本:

DECLARE @ModelName nVarchar(50) = 'DEV ERP'
DECLARE @Model_id int
DECLARE @UserName nvarchar(50) = 'System'
DECLARE @User_ID int
DECLARE @Version_ID int
SET @User_ID =  (SELECT ID 
                 FROM mdm.tblUser u
                 WHERE u.UserName = @UserName)
SET @Model_ID = (SELECT Model_ID
                 FROM mdm.viw_SYSTEM_SCHEMA_VERSION
                 WHERE Model_Name = @ModelName)
SET @Version_ID = (SELECT MAX(ID)
                   FROM mdm.viw_SYSTEM_SCHEMA_VERSION
                   WHERE Model_ID = @Model_ID)
EXECUTE mdm.udpValidateModel @User_ID, @Model_ID, @Version_ID, 1

以下是我在尝试执行任务时遇到的错误:

  

[执行SQL任务]错误:执行查询" DECLARE @ModelName   nVarchar(50)=' DEV ERP' DECLAR ..."失败,出现以下错误:   " SYSERR515 |无法将值NULL插入列' EnterUserID',   table' MDS.mdm.tblEvent&#39 ;;列不允许空值。 INSERT失败。,   @ErrorNumber = 515,@ ErrorProcedure =" udpSystemEventSave",第60行"。   可能的失败原因:查询问题," ResultSet"   属性设置不正确,参数设置不正确,或   连接未正确建立。

我想知道如何克服这个问题,因为我无法将变量声明为NOT NULL值。在传递该变量之前,我该如何检查记录是否为有效记录?

1 个答案:

答案 0 :(得分:0)

IF @User_ID IS NULL
    BEGIN

        -- Handle it here.

    END
;