How to resolve "procedure has an unresolved reference to object dbo.sysssislog"

Nick H picture Nick H · Apr 13, 2012 · Viewed 11.7k times · Source

I have a Visual Studio 2010 database project and I have imported an existing schema. There are stored procedures in this database that refer to the Integration Services system table dbo.sysssislog and is generating a number of warnings in my project.

I have tried adding the master.dbschema and the msdb.dbschema as database references and I also tried renaming the references' database names to tempdb (instead of master or instead of msdb) but the problem persists.

I opened the msdb.dbschema file and I have confirmed that the sysssislog table exists in the file.

Here is the warning:

SQL04151: Procedure: [dbo].[storedProcedureName] has an unresolved reference to object [dbo].[sysssislog].

Answer

gonsalu picture gonsalu · Apr 13, 2012

The dbo.sysssislog is a user table (marked as a system table) created by SQL Server Integration Services (SSIS) automatically, when you create a package with event logging of SQL Server type. Besides this table, SSIS also creates some stored procedures (which can be ALTERed) for aiding the logging process.

It's an unresolved reference in your project, probably because you imported the database schema, which resulted in importing the stored procedures mentioned, but not importing the dbo.sysssislog table, since it's marked as a system table.

So now, what you have is a bunch of stored procedures referencing a table which you haven't imported, resulting in the warning.

What you can do to get rid of the warning(s), is to DROP and reCREATE the table manually (which is the only way to "remove" the system table mark), and importing it to your project.