• Your dynamic concat would look more like this:

    create table #Tables (

    TName varchar(100) primary key);

    insert into #Tables (TName)

    select 'GL20000' union all

    select 'GL30000';

    declare @SQL varchar(max), @Q char(4);

    select @Q = '''';

    select @SQL = coalesce(

    @SQL +

    'begin transaction;

    Insert into CE_CUSTOM..GL_Transactions

    (

    SOURCEINTERID,

    SOURCETBL,

    DEX_ROW_ID,

    SOURCDOC,

    OPENYEAR,

    OPENMTH,

    OPENDAY,

    ACTINDX,

    ACCTTYPE,

    ACTNUMBR_1,

    ACTNUMBR_2,

    ACTNUMBR_3,

    ACTNUMBR_4,

    ACTNUMBR_5)

    Select ' + @q + rtrim(interid) + @q + ',' +

    @q + TName + @q + ',' +

    'A.DEX_ROW_ID,

    A.SOURCDOC,

    DATEPART(yyyy, A.TRXDATE),

    DATEPART(mm, A.TRXDATE),

    DATEPART(dd, A.TRXDATE),

    B.ACTINDX,

    B.ACCTTYPE,

    B.ACTNUMBR_1,

    B.ACTNUMBR_2,

    B.ACTNUMBR_3,

    B.ACTNUMBR_4,

    B.ACTNUMBR_5' +

    'From ' + rtrim(interid) + '..' + TName + ' A ' +

    'Join ' + rtrim(interid) + '..GL00100 B ON A.ACTINDX = B.ACTINDX ' +

    'Where A.TRXDATE > = ' + @q + 'Oct 1, 2004' + @q + ' and ' +

    'NOT EXISTS (Select * from CE_CUSTOM..GL_Transactions C Where C.DEX_ROW_ID = A.DEX_ROW_ID and C.SOURCEINTERID = ' +

    @q + rtrim(interid) + @q + ' and C.SOURCETBL = ' + @q + TName + @q + ') ' +

    'Group By

    A.DEX_ROW_ID,

    B.ACTINDX,

    A.SOURCDOC,

    A.TRXDATE,

    B.ACTNUMBR_1,

    B.ACTNUMBR_2,

    B.ACTNUMBR_3,

    B.ACTNUMBR_4,

    B.ACTNUMBR_5; while @@trancount> 0 commit;',

    --

    'begin transaction;

    Insert into CE_CUSTOM..GL_Transactions

    (

    SOURCEINTERID,

    SOURCETBL,

    DEX_ROW_ID,

    SOURCDOC,

    OPENYEAR,

    OPENMTH,

    OPENDAY,

    ACTINDX,

    ACCTTYPE,

    ACTNUMBR_1,

    ACTNUMBR_2,

    ACTNUMBR_3,

    ACTNUMBR_4,

    ACTNUMBR_5)

    Select ' + @q + rtrim(interid) + @q + ',' +

    @q + TName + @q + ',' +

    'A.DEX_ROW_ID,

    A.SOURCDOC,

    DATEPART(yyyy, A.TRXDATE),

    DATEPART(mm, A.TRXDATE),

    DATEPART(dd, A.TRXDATE),

    B.ACTINDX,

    B.ACCTTYPE,

    B.ACTNUMBR_1,

    B.ACTNUMBR_2,

    B.ACTNUMBR_3,

    B.ACTNUMBR_4,

    B.ACTNUMBR_5' +

    'From ' + rtrim(interid) + '..' + TName + ' A ' +

    'Join ' + rtrim(interid) + '..GL00100 B ON A.ACTINDX = B.ACTINDX ' +

    'Where A.TRXDATE > = ' + @q + 'Oct 1, 2004' + @q + ' and ' +

    'NOT EXISTS (Select * from CE_CUSTOM..GL_Transactions C Where C.DEX_ROW_ID = A.DEX_ROW_ID and C.SOURCEINTERID = ' +

    @q + rtrim(interid) + @q + ' and C.SOURCETBL = ' + @q + TName + @q + ') ' +

    'Group By

    A.DEX_ROW_ID,

    B.ACTINDX,

    A.SOURCDOC,

    A.TRXDATE,

    B.ACTNUMBR_1,

    B.ACTNUMBR_2,

    B.ACTNUMBR_3,

    B.ACTNUMBR_4,

    B.ACTNUMBR_5; while @@trancount> 0 commit;')

    from DYNAMICS..SY01500

    cross join #Tables

    where UDCOSTR2 = 'Active' and interid <> 'Audit';

    print @SQL;

    --exec (@SQL);

    Test it with the print command, then run it on a test server with the exec command.

    - Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
    Property of The Thread

    "Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon