SET NOCOUNT ON
SET STATISTICS IO OFF

CREATE TABLE #Temp(ExecSQL nvarchar(3500));
CREATE TABLE #Rs(RsSQL nvarchar(3500));
DECLARE 
	@DBName nvarchar(255)
,	@SQL nvarchar(3500);

SET @DBName = 'AdventureWorks';
SET @SQL = '
	SELECT 
		''CREATE SYNONYM ['' + TABLE_SCHEMA + ''_'' +	TABLE_NAME + ''] FOR ['' + 
		TABLE_CATALOG + ''].['' + TABLE_SCHEMA + ''].['' + TABLE_NAME + '']''
	FROM ' + @DBName + '.INFORMATION_SCHEMA.TABLES
	WHERE TABLE_SCHEMA <> ''dbo''';
INSERT #Temp EXEC(@SQL);

DECLARE Cur CURSOR FOR
	SELECT ExecSQL FROM #Temp

OPEN cur;
FETCH NEXT FROM cur INTO @SQL;
WHILE @@FETCH_STATUS NOT IN (-1, -2)
BEGIN
	--EXEC(@SQL);
	--PRINT @SQL;
	INSERT #Rs(RsSQL) VALUES(@SQL);
	FETCH NEXT FROM cur INTO @SQL;
END

SELECT * FROM #Rs

DROP TABLE #Temp
DROP TABLE #Rs
CLOSE cur;
DEALLOCATE cur;