Couple of things to check.
1) Make sure all the products you have installed on any workstation are installed on the server as well. New in verison 9 is the validation check. If you have something installed on a workstation that has not been initialized (sp?) on the server you will not be able to log in.
2) When you launch Utilities, if all the companies are at version 9 you should not see the option to upgrade companies. Check the DB_Upgrade table in the DYNAMICS database and make sure all the companies and modules are version 9.
3) Check the SY01500 tables in the DYNAMICS database and make sure there are not companies listed there that do not exist.
The following script will clear the DYNAMICS database of all any missing companies:
-- Comment out the below two lines if not all of your GP \
-- data is restored (more databases need to be restored)
delete DYNAMICS..SY01500 where INTERID not in
(select name from master..sysdatabases)
-- t cursor to remove references to CMPANYID's that no longer exist
USE DYNAMICS
declare @CMPANYID char(150)
declare CMPANYID_Cleanup CURSOR for
select 'delete ' + o.name + ' where CMPANYID not in (0,-32767)'
+ ' and CMPANYID not in (select CMPANYID from DYNAMICS..SY01500)'
from sysobjects o, syscolumns c
where o.id = c.id
and o.type = 'U'
and c.name = 'CMPANYID'
and o.name <> 'SY01500' order by o.name
set nocount on
OPEN CMPANYID_Cleanup
FETCH NEXT from CMPANYID_Cleanup into @CMPANYID
while (@@FETCH_STATUS <>-1)
begin
exec (@CMPANYID)
FETCH NEXT from CMPANYID_Cleanup into @CMPANYID
end
DEALLOCATE CMPANYID_Cleanup
go
--
-- t cursor to remove references to companyID's that no longer exist
USE DYNAMICS
declare @companyID char(150)
declare companyID_Cleanup CURSOR for
select 'delete ' + o.name + ' where companyID not in (0,-32767)'
+ ' and companyID not in (select CMPANYID from DYNAMICS..SY01500)'
from sysobjects o, syscolumns c
where o.id = c.id
and o.type = 'U'
and c.name = 'companyID'
and o.name <> 'SY01500'
set nocount on
OPEN companyID_Cleanup
FETCH NEXT from companyID_Cleanup into @companyID
while (@@FETCH_STATUS <>-1)
begin
exec (@companyID)
FETCH NEXT from companyID_Cleanup into @companyID
end
DEALLOCATE companyID_Cleanup
go
--
-- t cursor to remove references to db_name's that no longer exist
USE DYNAMICS
declare @db_name char(150)
declare db_name_Cleanup CURSOR for
select 'delete ' + o.name + ' where db_name <> ''DYNAMICS'''
+ ' and db_name not in (select INTERID from DYNAMICS..SY01500)'
from sysobjects o, syscolumns c
where o.id = c.id
and o.type = 'U'
and c.name = 'db_name'
set nocount on
OPEN db_name_Cleanup
FETCH NEXT from db_name_Cleanup into @db_name
while (@@FETCH_STATUS <>-1)
begin
exec (@db_name)
FETCH NEXT from db_name_Cleanup into @db_name
end
DEALLOCATE db_name_Cleanup
GO
-- Remove stranded references from the other Business Alerts table that no longer exist in the SY40500
delete SY40502 where BARULEID NOT IN (SELECT BARULEID FROM SY40500)
delete SY40503 where BARULEID NOT IN (SELECT BARULEID FROM SY40500)
delete SY40504 where BARULEID NOT IN (SELECT BARULEID FROM SY40500)
delete SY40505 where BARULEID NOT IN (SELECT BARULEID FROM SY40500)
delete SY40506 where BARULEID NOT IN (SELECT BARULEID FROM SY40500)
5) Check the duLCK tables in the DYNAMICS database and make sure nothing is in the tables. If there is, delete the table.
Hopefully 1 of those will help.
I would STRONGLY recommend baking a backup of the DYNAMICS database before you start.