You're going to be using dynamic SQL. And if that sounds scary don't worry, it's really not. First though I would recommend scripting out the tables you want to put in the new database seperately rather than using a SELECT INTO. This way you will get all of the indexes, triggers, etc scripted along with you. The easiest way to handle that is going to be using the Object Explorer Details window in SSMS (Management Studio). Basically it will let you sort and/or filter so you can select the tables you want to copy and then right click and script the whole thing out. I have a set of instructions (and a short demo gif) here. Then you run the script on the new database.
That said, here is how you would copy the data. This does assume that the database is on the same server. If it's not you'll need to use something like BCP or SSIS. If it is then you can code out the INSERT INTOs. Here is a first stab at it:
SELECT -- Create the insert command
-- If the table has an identity turn identity insert on
CASE WHEN OBJECTPROPERTY(tables.object_id,'TableHasIdentity') =0 THEN '' ELSE
'SET IDENTITY INSERT RemoteDB.' + schemas.name + '.' + tables.name + ' ON;
' END +
-- Generate the INSERT INTO command
'INSERT INTO RemoteDB.' + schemas.name + '.' + tables.name + ' (' + MyColumns.List + ')
SELECT ' + MyColumns.List + ' FROM LocalDB.' + schemas.name + '.' + tables.name + ';' +
-- If the table has an identity turn identity insert off
CASE WHEN OBJECTPROPERTY(tables.object_id,'TableHasIdentity') =0 THEN '' ELSE
'
SET IDENTITY INSERT RemoteDB.' + schemas.name + '.' + tables.name + ' OFF; ' END
FROM sys.tables
JOIN sys.schemas
ON tables.schema_id = schemas.schema_id
-- Generate a comma delimited list of columns for each table
CROSS APPLY ( SELECT
STUFF((SELECT ', ' + columns.name
FROM sys.columns
WHERE columns.object_id = tables.object_id
ORDER BY columns.column_id
FOR XML PATH(''),TYPE).value('.','VARCHAR(MAX)')
, 1, 2, '') AS list ) MyColumns(List)
WHERE
-- Filter just the tables you want
tables.name like 'Filter%'
-- Make sure that they don't already exist in the remote location
AND NOT EXISTS (SELECT 1
FROM RemoteDB.sys.tables RemoteTables
JOIN RemoteDB.sys.schemas RemoteSchemas
ON RemoteTables.schema_id = RemoteSchemas.schema_id
WHERE RemoteTables.name = tables.name
AND RemoteSchemas.name = schemas.name)
From here you can either copy the output into a query window to run or put a cursor (or some other type of loop) and run each command one at a time. Make sure to change RemoteDB and LocalDB to the appropriate names, and it's designed to be run on the source/local DB.