The best way to extract the data and table schema is to use the Export Data option in SSMS. We've used this to move data from one production database to another.
You can either
use a query (in which case you select/ignore, transform (blinding sensitive data) and rename columns if needed) or
copy entire table(s) at once.
There are options to specify the data types and mappings from source to destination, etc.
It takes a few tries to determine the source/destination driver (SQL Native Client is very straightforward) depending on the type of authentication you're using (The best way is to create a DBUser and DBUserLogin temporarily for this purpose, primarily if the DB access is controlled by Azure Entra ID Interactive approach; AZURE Entra Integrated is still effortless)
You can generate a script using SSMS to create the database schema, indexes, etc., in sequence. This script can then be run on the target database before drawing the data.