【问题标题】:SSIS Execute SQL Task - Validating MDS modelSSIS 执行 SQL 任务 - 验证 MDS 模型
【发布时间】:2017-10-09 20:14:08
【问题描述】:

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

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

这是脚本:

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’中, 表'MDS.mdm.tblEvent';列不允许空值。插入失败。, @ErrorNumber = 515,@ErrorProcedure = "udpSystemEventSave",第 60 行"。 可能的失败原因:查询有问题,“ResultSet” 属性设置不正确,参数设置不正确,或 连接未正确建立。

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

【问题讨论】:

    标签: sql-server ssis


    【解决方案1】:
    IF @User_ID IS NULL
        BEGIN
    
            -- Handle it here.
    
        END
    ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多