5 Ways To Export SharePoint Data to SQL Server
SharePoint provides us with a great way of capturing and managing data which has seen a huge increase in business data stored in SharePoint On Premise and SharePoint Online lists and libraries. This often means we have the requirement to report against this data. SharePoint doesn’t always make this easy for us!
We can install reporting services into a SharePoint site but it’s still not easy to report against the data. As a consequence of the data not being stored in a relational way, we find there is no easy way to cross-reference data meaning we have to create a dataset for each query and link them using the ‘Lookup’ and ‘LookupSet’ methods. Not ideal!
What would be really nice is if we could export our SharePoint data to normalised SQL Server tables and then use the power of SQL reporting services to generate our reports using this relational model. Reporting Services offers us more flexibility when working with a SQL Server database; We can also use the power and efficiency of the SQL Server database engine to provide to manipulate our data.
There is definitely a compelling reason to investigate how we could export this SharePoint data into SQL Server.
So what approaches could we take to export SharePoint data into SQL Server?
1) Access the SharePoint database directly to export SharePoint Data
NONE – This was a trick option! Don’t do this ever!
- Directly accessing the SharePoint content databases is completely unsupported by Microsoft.
- The schema may well change after SharePoint patches and services packs
- It can cause performance issues to your SharePoint farm
- If you get the queries wrong, there’s every chance your reports may also be incorrect!
2) Use CSOM and Powershell scripts to export SharePoint lists
This option provides us with a relational database and we can script the imports. We are able to use the SharePoint Object Model and power shell retrieve the SharePoint lists, interrogate the fields and dynamically create SQL Server Tables before fetching the data, translating it, and loading it into the SQL Server database.
- Slow to setup
- Lot of work in creating the scripts and tweaking them
- We need to manage the database schema generation and mappings
3) SQL Server Integration Services (SSIS) and the ‘SharePoint List Adapter’ components for exporting SharePoint data
There’s a good Microsoft resource on what is possible:
- ‘SharePoint List Adapters’ talk to SharePoint using web services, which are slower than using the SharePoint Object Model
- It’s complicated
- It takes a lot of effort to set this up
- Changes to your list schema require changes to your SSIS package and SQL schema
- Difficult to get working with SharePoint 2013/2016 and SharePoint Online
4) Export to Excel first and then load to SQL Server
You can export the contents of a SharePoint lists, the results of a survey, or document libraries to an Excel spreadsheet.
The export process exports only the columns and rows contained in the list’s current view. If none of the views contain the data that you want to export, then you must create a new view to meet your needs. Alternatively, you can choose one of the existing views, export the list to a spreadsheet, and then delete the unwanted data.
- Actions > Export to SpreadSheet.
- Save the Excel file.
- Open your SQL database with SQL Management Studio.
- Right click on your database > Tasks > Import Data.
- Select your Excel file as the source, and specific table as destination.
- Fill all other needed options.
- Click finish.
5) Use AxioWorks SQList to export SharePoint lists and libraries to normalised SQL Server database tables without any development at all
AxioWorks SQList is a lightweight windows service that can be quickly configured to export SharePoint on-premise or SharePoint online data to SQL Server. As well as automatically generating and maintaining SQL schema, SQList will keep your SharePoint data in synch. There are options to archive SharePoint lists and libraries to SQL as well as scheduled exports for those looking for daily exports to a data warehouse or datamart.
Have a look at this video to understand how you can get your SharePoint lists, libraries, files and attachment into normalised sql server databases and continuously replicate them in just a few minutes: