If generating the scripts using the menu option in object explorer is not a possiblility, the next best thing I can think of is to sue a powershell script. But, that comes with its own issues - nonetheless you can give it a try. In the script below, you can change the first four lines and run it. If you want to script all the tables, just remove the Where-Object filter on the line before the foreach loop.If you have never run powershell scripts before on the server, you will need to change the execution policy from a powershell window using:set-executionpolicy remotesigned
I tested this code on my local box with 3 tables and it works. This is my own unsophisticated script with very little error checking; but it is tailored to what you described. $servername = '(local)'; # Your ServerName$databasename = 'YourDatabaseNameHere'; # Your Databasename$OutputFolderName = 'C:\Temp'; # Folder where you want the scripts to be written to$InputTableList = 'C:\Temp\tables.txt' # File that lists the tables that you want to script$tableList = Get-Content $InputTableList;[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | out-null;$server = new-object Microsoft.SqlServer.Management.Smo.Server($servername);$database = $server.databases[$databasename];$tables = $database.tables | Where-Object { $tableList -contains ($_.name) }foreach ($table in $tables){ $table.script() | out-file ([IO.Path]::Combine($OutputFolderName,$table.name+'.sql'));}