check if tables has same columns
A simple approach if all you care about is column names and merely identifying any tables that have the same naming scheme but have columns that don't exist in the "model" or "ideal" table (also, I kept this simple, assuming all tables are in dbo):

USE tempdb;
GO

CREATE TABLE dbo.repo_2012_08_04(a INT, b INT); -- model
CREATE TABLE dbo.repo_2012_08_05(a INT, b INT); -- same schema as model
CREATE TABLE dbo.repo_2012_08_06(a INT, c INT); -- different
CREATE TABLE dbo.repo_2012_08_07(a INT, b INT, c INT); -- different
GO

DECLARE @model SYSNAME = N'repo_2012_08_04';

SELECT t.name FROM sys.tables AS t
WHERE name LIKE N'repo[_]%'
AND name &lt;&gt; @model
AND EXISTS
(
  SELECT 1 FROM sys.columns AS c 
    WHERE [object_id] = t.[object_id]
    AND NOT EXISTS
    (
      SELECT 1 FROM sys.columns
      WHERE [object_id] = OBJECT_ID(N'dbo.' + QUOTENAME(@model))
      AND name = c.name
    )
);
GO

DROP TABLE repo_2012_08_04, repo_2012_08_05, 
           repo_2012_08_06, repo_2012_08_07;
GO


Results:

repo_2012_08_06
repo_2012_08_07