2014-10-08 18 views
0

我有一個20字段的表。如何檢查SSIS中至少有一個空值或常量值的表中的每一行?

1)有沒有什麼辦法可以檢查所有字段是否有NULL?

2)對於所有nvarchar的列,如果我們想要搜索它們是否包含常量字符串值,例如「失蹤」。

我可以在SSIS中執行上述操作,而無需逐一檢查列嗎?

+0

想知道你到目前爲止所嘗試過的嗎?我可以考慮3個可以使用的選項。 '1。使用SQL來預先確定是否存在NULL或Missing','2。派生列任務檢查列以導出NULL或Missing','3。腳本組件任務來檢查'。可能還有其他的選擇,所以我猜這取決於你的要求是什麼。 – Tak 2014-10-08 13:35:41

+0

@t_m我可以想到所有這些,但我不想逐個檢查所有的字段。 – e4rthdog 2014-10-08 14:32:46

回答

2

沒有Null-inator會檢查任何列是否在一行中爲空。但是,您可以連接該行中的所有列,並且如果任何列爲空,則結果將爲空。因此,在一個出列任務,它可能是這樣的:

Field1 + Field2 + (DT_WSTR, 50)Field3... 

正如場3證實,這不是字符串的所有領域都需要轉換。

同樣,您可以通過連接派生列任務中的所有字段並使用FINDSTRING()來找到關鍵字,如「missing」。看起來像這樣:

FINDSTRING(Field1 + Field2, "Missing",1) 

如果該值大於0,則表示有一個命中。雖然有一些缺點。考慮到你的列可以爲空,你需要對所有列進行空處理,除非這個測試只在沒有空值的行上執行。另外,它不會告訴你哪個列有值,所以這可能不是非常有用,除非你拒絕或隔離整個行。

相關問題