Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using SSDT, how do I resolve SQL71561 errors when I have a view that references objects in a different database?

I have a database project in SSDT and when I import a view that references objects in a different database, I get error SQL71561, with a description along these lines:

Error 4 SQL71561: View: [schema].[viewname] has an unresolved reference to object [other_db].[schema].[table].[column]

I spent some time trying to figure this out, so to help others running into this I will post the answer that worked for me.

like image 646
Jeff Ogata Avatar asked Aug 28 '12 14:08

Jeff Ogata


2 Answers

My problem was from a view. In the view I had...

...FROM [MyDatabase].[dbo].[MyTable]

I replaced it with...

...FROM [MyTable]

The reason is that you may be importing the bacpac/dacpac into a different database name so the reference to [MyDatabase] might not be valid.

like image 31
Jason Geiger Avatar answered Oct 29 '22 02:10

Jason Geiger


To resolve this, I added a reference to the other database, clearing out the "Database variable" field in the dialog. If I didn't clear this field, when doing a schema compare, SSDT would generate the update script using the database variable name, which would fail.

  1. Add a Database Reference to the project.
  2. In my case the other database was another project in the same solution, so I was able to select it in the first drop down on the "Add Database Reference" dialog.
  3. Make sure the text in the "Database name" field is correct.
  4. Clear out the "Database variable" field.

Look at the "Example usage" text and verify that it looks as expected. Click "OK" to add the reference and that should take care of the 'unresolved reference' errors.

After doing this, I was able to do a schema comparison, but trying to build the project produced the following error:

Error 408 SQL00208: Invalid object name 'db.schema.table'.

Going to the project properties and unchecking "Enable extended Transact-SQL verification for common objects" allowed the project to build successfully.

like image 52
Jeff Ogata Avatar answered Oct 29 '22 03:10

Jeff Ogata