1) you can write a stored procedure that handles the 12 tables one after another, you than call this one stored proc from your job; perhaps you want to use a transaction around the delete and insert
CREATE PROCEDURE [dbo].[psp_sync_stuff]
AS
DECLARE @iCnt INT
SET NOCOUNT ON
SELECT *
INTO #tempTableName
FROM [ServerName].DbName.dbo.sourceTableName
SELECT @iCnt = COUNT(0) FROM #tempTableName
IF @iCnt > 0
BEGIN
BEGIN TRANSACTION
DELETE FROM targetTableName
INSERT INTO targetTableName
SELECT * FROM #tempTableName
COMMIT TRANSACTION
END
SET NOCOUNT OFF
GO
2) when you want to put your tablesnames in variables you will need sp_executesql to perform the resulting dynamic sql, something in this direction
DECLARE @vSql NVARCHAR(4000)
DECLARE @vSourceTableName1 NVARCHAR(100)
SET @vSourceTableName1 = "[ServerName].DbName.dbo.sourceTableName"
SET @vSql = "SELECT * INTO #tempTableName FROM " + @vSourceTableName1
EXECUTE sp_executesql @vSql
3) perhaps you should read something about replication and see whether it might perform the job you want to be done (you are not mentioning your Database Server system, MS SQL Server or Oracle, or ?)