You need to understand that your database consists of several types of objects, including but not limited to:
- Tables and their data
- Indexes
- Stored procedures
- Views
- User-defined functions
- Schemas
- User roles and permissions
Each of these objects is important for the proper functioning of your applications that rely on the database.
Since the limitations you mentioned, you'll need to script out your database objects and execute these scripts on the target server.
With SSMS, you can use "Generate Scripts" wizard which allows you to script out the entire database or specific objects within it and you can automate this process by using the sqlpackage.exe
command-line utility or PowerShell scripts.
Another alternative can be PowerShell scripts can use the sqlpackage.exe
tool for extracting a Data-tier Application (DAC) package from the source database. The DAC package includes schema and table data, which can then be deployed to the target SQL Server.
While ADF can't directly script database objects, you can execute pre-scripting steps to prepare the target database before using ADF to move data.
Another detail, since you're dealing with private endpoints, ensure that the network security allows for connectivity between your source database, the machine running the scripts, and the target database.