我正在开发一个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
值。在传递该变量之前,我该如何检查记录是否为有效记录?
答案 0 :(得分:0)
IF @User_ID IS NULL
BEGIN
-- Handle it here.
END
;