This is very important option provided by Microsoft for SSAS and it is very important interview question too. Don’t expect an interview with out having a question about this REFRESH option. Let’s see complete story about this REFRESH option here.
Firstly, lets see where this option available in SSAS BIDS environment. You can find this in Data Source View in short DSV. IIf you open DSV and right click on Vacant area then you can see context menu items among which one is “Refresh”. PFB screenshot showing the Refresh option in DSV.
Now let’s see the use of this option. Let’s say I added 10 tables to my DSV and dimensions and Measure groups are defined and the cube is built. Now I got a new requirement which lead to structural changes of the tables that are used in DSV. Structural changes includes
1) Adding a column to a table or view
2) Deleting a Column
3) Removing or adding Primary Keys
4) Removing or Adding Relationships
If you wish to get all the structural changes happened to the tables that are part of DSV then REFRESH is the option. If you click on REFRESH then it will check in database for changes happened to the tables in DSV and will prompt us to Add the changes to DSV.
Example – In the DSV shown in the below screenshot a table “DimCustomer” is added.
Now I am adding a new column to this table in Database with the name “Address” using the below query –
Alter table DimGeography
Add Address Varchar(100)
To pull this column into DSV table I can do the following things.
- Removing Table from DSV and Adding it back
- Using Refresh Option
If you use the First option listed above and when u remove the table from DSV then all the objects created like Dimensions,Measure Groups,Relations .. using this table will get deleted. This will be very risky and not a best option to pull the changes into Cube. So, The best option is using Refresh button. If you select refresh option then it will show you the changes occurred in database level as shown in below screenshot –
If you select OK then the changes will be updated to the tables in DSV. The only Disadvantage with this option is you have to accept all the changes or reject all the changes. You cannot accept partial changes by rejecting the remaining. Either Full or Null.
That’s it .. Happy Coding !!
Roopesh Babu V