Our OS hardware had problem, we reinstalled SQL, then drop the
distributor database, ... had problem, got error: Invalid object name
'msdb.dbo.MSdistributiondbs'. (Microsoft SQL Server, Error: 208)
here is what I did, worked
1. restore the old 'msdb' to database as old_msdb'
2. script table [dbo].[MSdistributiondbs] from old_msdb' to run under the current msdb:
use msdb
CREATE TABLE [dbo].[MSdistributiondbs](
[name] [sysname]
NOT NULL,
[min_distretention] [int] NOT NULL,
[max_distretention] [int]
NOT NULL,
[history_retention] [int] NOT NULL
) ON
[PRIMARY]
GO
3. when I try to use configure distributor, got another
error: Invalid object name 'msdb.dbo.MSdistpublishers', then I did script table
MSdistpublishers to current msdb
use msdb
CREATE TABLE
[dbo].[MSdistpublishers](
[name] [sysname] NOT NULL,
[distribution_db]
[sysname] NOT NULL,
[working_directory] [nvarchar](255) NOT
NULL,
[security_mode] [int] NOT NULL,
[login] [sysname] NOT
NULL,
[password] [nvarchar](524) NULL,
[active] [bit] NOT
NULL,
[trusted] [bit] NOT NULL,
[thirdparty_flag] [bit] NOT
NULL,
[publisher_type] [sysname] NOT NULL
) ON
[PRIMARY]
GO
ALTER TABLE [dbo].[MSdistpublishers] ADD DEFAULT
(N'MSSQLSERVER') FOR [publisher_type]
GO
Then, everything is fine. check 2 tables
1. MSdistributiondbs
2. MSdistpublishers
are under msdb/table, not under msdb/table/systable. It is fine. Worked!!
Baimei Guo (http://www.cdbaby.com/cd/baimei)