Site Search:
Sign in | Join | Help

SQL Server (T-SQL)

Comments and notes on SQL Server 2000, 2005, and T-SQL

Initialize a new Dynamics 10.0 database

Here is a script that will write code to initialize a Dynamics GP 10.0 database. It depends on a table called _temp that has a list of tables to initialize. This script will scan that table and write insert statements for all the tables in the source table

-- =============================================
-- 
-- =============================================
IF OBJECT_ID('tempdb..#tables', 'U') IS NOT NULL begin
  DROP TABLE #tables
end
GO


SET NOCOUNT on



CREATE TABLE #tables (tablename VARCHAR(10))
INSERT INTO #tables (tablename) VALUES ('CM00100')
INSERT INTO #tables (tablename) VALUES ('CM40100') 
INSERT INTO #tables (tablename) VALUES ('CM40101') 
INSERT INTO #tables (tablename) VALUES ('GL00100') 
INSERT INTO #tables (tablename) VALUES ('GL00102') 
INSERT INTO #tables (tablename) VALUES ('GL00103') 
INSERT INTO #tables (tablename) VALUES ('GL00104') 
INSERT INTO #tables (tablename) VALUES ('GL00105') 
INSERT INTO #tables (tablename) VALUES ('GL00200') 
INSERT INTO #tables (tablename) VALUES ('GL00201') 
INSERT INTO #tables (tablename) VALUES ('GL40000') 
INSERT INTO #tables (tablename) VALUES ('GL40100') 
INSERT INTO #tables (tablename) VALUES ('GL40101') 
INSERT INTO #tables (tablename) VALUES ('GL40200') 
INSERT INTO #tables (tablename) VALUES ('IV00101') 
INSERT INTO #tables (tablename) VALUES ('IV00102') 
INSERT INTO #tables (tablename) VALUES ('IV00103') 
INSERT INTO #tables (tablename) VALUES ('IV00104') 
INSERT INTO #tables (tablename) VALUES ('IV00105') 
INSERT INTO #tables (tablename) VALUES ('IV00106') 
INSERT INTO #tables (tablename) VALUES ('IV00107') 
INSERT INTO #tables (tablename) VALUES ('IV00108') 
INSERT INTO #tables (tablename) VALUES ('IV00109') 
INSERT INTO #tables (tablename) VALUES ('IV40100') 
INSERT INTO #tables (tablename) VALUES ('IV40201') 
INSERT INTO #tables (tablename) VALUES ('IV40202') 
INSERT INTO #tables (tablename) VALUES ('IV40400') 
INSERT INTO #tables (tablename) VALUES ('IV40401') 
INSERT INTO #tables (tablename) VALUES ('IV40500') 
INSERT INTO #tables (tablename) VALUES ('IV40600') 
INSERT INTO #tables (tablename) VALUES ('IV40700') 
INSERT INTO #tables (tablename) VALUES ('IV40800') 
INSERT INTO #tables (tablename) VALUES ('IV40900') 
INSERT INTO #tables (tablename) VALUES ('IV41000') 
INSERT INTO #tables (tablename) VALUES ('IV41001') 
INSERT INTO #tables (tablename) VALUES ('IVC40100') 
INSERT INTO #tables (tablename) VALUES ('IVC40101') 
INSERT INTO #tables (tablename) VALUES ('MC40000') 
INSERT INTO #tables (tablename) VALUES ('MC40100') 
INSERT INTO #tables (tablename) VALUES ('PM00100') 
INSERT INTO #tables (tablename) VALUES ('PM00101') 
INSERT INTO #tables (tablename) VALUES ('PM00200') 
INSERT INTO #tables (tablename) VALUES ('PM00203') 
INSERT INTO #tables (tablename) VALUES ('PM00300') 
INSERT INTO #tables (tablename) VALUES ('PM40100') 
INSERT INTO #tables (tablename) VALUES ('PM40101') 
INSERT INTO #tables (tablename) VALUES ('PM40102') 
INSERT INTO #tables (tablename) VALUES ('PM40103') 
INSERT INTO #tables (tablename) VALUES ('POP00101') 
INSERT INTO #tables (tablename) VALUES ('POP40100') 
INSERT INTO #tables (tablename) VALUES ('POP40600') 
INSERT INTO #tables (tablename) VALUES ('RM00101') 
INSERT INTO #tables (tablename) VALUES ('RM00102') 
INSERT INTO #tables (tablename) VALUES ('RM00105') 
INSERT INTO #tables (tablename) VALUES ('RM00201')
INSERT INTO #tables (tablename) VALUES ('RM00301') 
INSERT INTO #tables (tablename) VALUES ('RM00303') 
INSERT INTO #tables (tablename) VALUES ('RM40101') 
INSERT INTO #tables (tablename) VALUES ('RM40201') 
INSERT INTO #tables (tablename) VALUES ('RM40401') 
INSERT INTO #tables (tablename) VALUES ('SOP00100')
INSERT INTO #tables (tablename) VALUES ('SOP00200')
INSERT INTO #tables (tablename) VALUES ('SOP40100')
INSERT INTO #tables (tablename) VALUES ('SOP40200')
INSERT INTO #tables (tablename) VALUES ('SOP40201')
INSERT INTO #tables (tablename) VALUES ('SOP40300')
INSERT INTO #tables (tablename) VALUES ('SOP40400')
INSERT INTO #tables (tablename) VALUES ('SOP40500')
INSERT INTO #tables (tablename) VALUES ('SOP40600')
INSERT INTO #tables (tablename) VALUES ('SY00300')
INSERT INTO #tables (tablename) VALUES ('SY01100')
INSERT INTO #tables (tablename) VALUES ('SY02200'INSERT INTO #tables (tablename) VALUES ('SY02300') 
INSERT INTO #tables (tablename) VALUES ('SY03000') 
INSERT INTO #tables (tablename) VALUES ('SY03100') 
INSERT INTO #tables (tablename) VALUES ('SY03300') 
INSERT INTO #tables (tablename) VALUES ('SY04100') 
INSERT INTO #tables (tablename) VALUES ('SY40100') 
INSERT INTO #tables (tablename) VALUES ('SY40101') 
INSERT INTO #tables (tablename) VALUES ('TX00101') 
INSERT INTO #tables (tablename) VALUES ('TX00102') 
INSERT INTO #tables (tablename) VALUES ('TX00201') 
INSERT INTO #tables (tablename) VALUES ('UPR40100')
INSERT INTO #tables (tablename) VALUES ('UPR40101')
INSERT INTO #tables (tablename) VALUES ('UPR40200')
INSERT INTO #tables (tablename) VALUES ('UPR40301')
INSERT INTO #tables (tablename) VALUES ('UPR40500')
INSERT INTO #tables (tablename) VALUES ('UPR40501')
INSERT INTO #tables (tablename) VALUES ('UPR40600')
INSERT INTO #tables (tablename) VALUES ('UPR40700')
INSERT INTO #tables (tablename) VALUES ('UPR40800')
INSERT INTO #tables (tablename) VALUES ('UPR40801')
INSERT INTO #tables (tablename) VALUES ('UPR40900')
INSERT INTO #tables (tablename) VALUES ('UPR40901')
INSERT INTO #tables (tablename) VALUES ('UPR40902')
INSERT INTO #tables (tablename) VALUES ('UPR41100')
INSERT INTO #tables (tablename) VALUES ('UPR41200')
INSERT INTO #tables (tablename) VALUES ('UPR41201')
INSERT INTO #tables (tablename) VALUES ('UPR41400')
INSERT INTO #tables (tablename) VALUES ('UPR41401')
INSERT INTO #tables (tablename) VALUES ('UPR41500')
INSERT INTO #tables (tablename) VALUES ('UPR41700')
INSERT INTO #tables (tablename) VALUES ('UPR41800')
INSERT INTO #tables (tablename) VALUES ('UPR41801')
INSERT INTO #tables (tablename) VALUES ('UPR41900')
INSERT INTO #tables (tablename) VALUES ('UPR41901')
INSERT INTO #tables (tablename) VALUES ('UPR41902')


 


DECLARE curName CURSOR local fast_forward FOR 
    select tablename from #tables



DECLARE @tname varchar(10),
    @intCount int,
    @fieldList varchar(8000),
    @cname varchar(255)



OPEN curName



WHILE 1=1 
BEGIN
    FETCH NEXT FROM curName INTO @tname



    if @@fetch_status <> 0 begin
        break
    end 
    set @fieldList = ''



    declare curFields CURSOR for
    select syscolumns.name
        from sysobjects
            left join syscolumns on syscolumns.id = sysobjects.id
        where sysobjects.name = @tname
            and colstat <> 1
    
    
    OPEN curFields
    
    
    FETCH NEXT FROM curFields INTO @cname
    WHILE @@FETCH_STATUS = 0
    BEGIN
        set @fieldList = @fieldList + @cname + '  '  + ', '
        FETCH NEXT FROM curFields INTO @cname
    END
    CLOSE curFields
    DEALLOCATE curFields



    if len(@fieldlist) > 0 begin
        set @fieldList = left(@fieldList, len(@fieldList) - 1)
    end
        
    print 'truncate table ' + @tname 
    print 'insert into ' + @tname + '(' + @fieldList + ')'
    print '    select           ' + @fieldList
    print '        from ngb01..' + @tname
    print 'print ''initialized ' + @tname + '''' 
    print ''
END



CLOSE curName
DEALLOCATE curName
GO
 

 

Comments

No Comments

About Steve Gray

Steve is a seasoned (translate: old) developer in VB and ASP.NET. He spends most of his time in Dynamics GP, writing custom mods for consulting firms. Crystal reports, eConnect, VS Tools for Dynamics... anything that comes along.