Sql SSI在null时为guid分配一个值

Sql SSI在null时为guid分配一个值,sql,ssis-2012,Sql,Ssis 2012,我在ssis中有以下表达式 (ISNULL [rowguid]? (DT_WSTR, 255)"00000000-0000-0000-0000-000000000000":[rowguid]) 我想要的是,如果存在null,则分配该guid。我似乎无法让它工作我终于想出了这个办法。您需要在默认GUID的前端和后端包含“{”和“}”。例如,(DT_GUID)“{00000000-0000-0000-0000-000000000000}” 有点沮丧,我尝试了“[]”,但从未想过尝试“{}”。最终通

我在ssis中有以下表达式

(ISNULL [rowguid]? (DT_WSTR, 255)"00000000-0000-0000-0000-000000000000":[rowguid])

我想要的是,如果存在null,则分配该guid。我似乎无法让它工作

我终于想出了这个办法。您需要在默认GUID的前端和后端包含“{”和“}”。例如,(DT_GUID)“{00000000-0000-0000-0000-000000000000}”


有点沮丧,我尝试了“[]”,但从未想过尝试“{}”。

最终通过反复试验得到了答案

  (DT_STR,50,1252) (ISNULL( [rowguid]) ? "00000000-0000-0000-0000-000000000000" : (DT_STR,50,1252) [rowguid]) != (DT_STR,50,1252) (ISNULL( [rowguid]) ? "00000000-0000-0000-0000-000000000000" : (DT_STR,50,1252) [rowguid])

我也有同样的问题。在TSQL中,您可以将看起来像GUID的varchar插入到唯一标识符列中,但在SSIS中它失败了。(DT_STR,501252)(ISNULL([apuk_networkid])?“00000000-0000-0000-0000-00000000”:(DT_STR,501252)[apuk networkid])(DT_STR,501252)(ISNULL([LK_apuk_networkid])?“00000000-0000-0000-000000000000”:(DT_STR,501252)[LK_apuk_networkid])