如何在 SSMS 2022 中根据字符长度约束列?

问题描述 投票:0回答:1

我有一列包含唯一 ID(例如 3ur56x960)作为 nvarchar 字符。数据通过 VS 2022 中的 SSIS 包输入。

我希望在运行 SSIS 包时只允许输入长度为 9 个字符的值,而不会使其执行失败。

设置列字符长度限制的最佳方法是什么?我应该在 SSIS 包中执行此操作,还是直接在 SSMS 的表中执行此操作?

到目前为止,我已经看到我可以将数据类型更改为 nvarchar(9) 以限制最多 9 个 - 但这不会阻止少于 9 个字符的条目。我相信我还可以向表添加一个 CHECK 约束,或者我可以以某种方式从 SSIS 包中进行检查(也许像一个查找函数来输出具有 ID 长度的新列的匹配?)。

ssis visual-studio-2022 sql-server-2019-express
1个回答
0
投票

一种选择是在 SSIS 中使用条件拆分。您的数据流将如下所示:

在条件分割任务中,编写一个表达式来检查唯一id列的长度。

然后将案例 1 映射到目标任务。

它只会将 9 位唯一 ID 写入目的地。如果要捕获非 9 位 ID,可以创建 Case 2 表达式,然后将 Case 2 映射到不同的目标表。

数据流看起来像这样

© www.soinside.com 2019 - 2024. All rights reserved.