2014-04-01 13 views
7

這可能聽起來像一個簡單的問題,但網絡上的答案都指向設置環境並在項目/軟件包中引用它的基礎知識。爲什麼SSIS2012目錄配置中的「使用環境變量」選項被禁用/變灰?

我遇到的情況從來沒有在任何地方提及過,所以我認爲這將是很好的文件在這裏的行爲。

下面是重現該問題的步驟:
1.創建一個新的包:Package1.dtsx
2.創建一個新的(包)參數:Test, Int32, Required
3.部署項目。
4.轉到Integration Services目錄並導航到包。
5.右鍵單擊該程序包,然後配置...
6.單擊「...」旁邊的包參數Test
7.你會看到"Use environment variable"選項被禁用/變灰。

Set Parameter Value

這是爲什麼?

回答

9

博客和論壇的大部分答案現在都會說你需要創建一個環境並將其鏈接到包,等等。但是,他們都沒有提到這個事實,即要啓用該選項,您必須具有匹配數據類型的變量!

請允許我演示。

  1. 創建一個環境:Demo
  2. 創建一個變量:Test, String
  3. 注意,環境變量的數據類型是到封裝放慢參數不同。
  4. 鏈接環境Demo到包Package1.dtsx
  5. 這是網站上的大多數答案。如果您已完成我迄今爲止所做的工作,則您的"Use environment variable選項仍處於禁用/變灰狀態。爲什麼?因爲數據類型不匹配。 重要 - 變量名稱不必匹配,只有數據類型。
  6. 現在讓我們來完成它。回到環境並創建另一個變量是的Int32:Aha, Int32, 0
    Environment Variables
  7. 回去配置...,然後點擊「...」旁邊的包參數Test
  8. "Use environment variable"選項是如何現在啓用? Use environment variable option is enabled
11

之前,你可以同時映射它們,你必須單擊引用,並添加您爲這個包創建的環境,那麼它將爲您啓用。

+2

本,這個答案_does_增加了一個問題:如果一個環境沒有與項目/軟件包關聯,即使變量確實有匹配的數據類型,選項「使用環境變量」也會變灰。 – bvgheluwe

+0

這是什麼讓我難堪。我花了一段時間才弄清楚將您的軟件包與環境「鏈接」是什麼意思。這是原始帖子中第5步和第6步之間的一個步驟。 –