问题
This may sound like an easy question but the answers on the net all point to the basics of setting up an environment and referencing it in the project/package.
The scenario that I have encountered was never mentioned anywhere so I thought it would be good to document the behaviour here.
Below is the steps to reproduce the problem:
1. Create a new package: Package1.dtsx
2. Create a new (package) parameter: Test, Int32, Required
3. Deploy the project.
4. Goto Integration Services Catalogs and navigate to the package.
5. Right click on the package and then Configure...
6. Click on "..." next to the package parameter Test
7. You will see that "Use environment variable"
option is disabled/grayed out.
Why is that?
回答1:
Before you can map them together, you have to click References and Add the Environment that you created for that package, then it will be enabled for you.
回答2:
Most answers from blogs and forums will now say that you need to create an environment and link it to the package, blah, blah. However, none of them mentions the fact that in order for the option to be enabled, you must have variables with MATCHING DATA TYPES!
Allow me to demonstrate.
- Create an environment:
Demo
- Create a variable:
Test, String
- Notice that the data type of the environment variable is different to the package paramter.
- Link the environment
Demo
to the packagePackage1.dtsx
- This is where most answers on the net stop. If you have done what I've told you to do up until now, your
"Use environment variable
option is still disabled/grayed out. Why? Because the data types are not matching. IMPORTANT - variable names don't have to match, only the data types. - Now let's finish it. Go back to the environment and create another variable that's Int32:
Aha, Int32, 0
- Go back to Configure... and click on "..." next to the package parameter
Test
- See how the
"Use environment variable"
option is now enabled?
来源:https://stackoverflow.com/questions/22775967/why-is-use-environment-variable-option-disabled-grayed-out-in-ssis2012-catalog