Is there a way to suppress SQL03006 error in VS2010 database project?
Asked Answered
A

1

15

First of all, I know that the error I am getting can be resolved by creating reference project (of type Database Server) and then referencing it in my Database project... However, I find this to be overkill, especially for small teams where there is no specific role separation between developers and db admins..But, let's leave this discussion for another time... Same goes for DACs...Can't use DAC b/c of limited objects supported...

Question Now, the question is: Can I (and how), disable SQL03006 error when building my Database project. In my case this error is generated because I am creating some users whose logins are "unresolved"...I think this should be possible I hope, since I "know" that logins will exist on the server before I deploy the script...I also don't want to maintain database server project just so I can keep refs resolved (I have nothing besides logins at server level)...

Workaround Using pre/post deployment scripts, it is trivial to get the secript working...

Workaround Issue You have to comment out user scripts (which use login references) for workaround... As soon as you do that, the .sqlpermissions bomb out, saying there is no referenced users...And then you have to comment permissions out and put them in post deploy scripts... The main disadvantage of this workaround is that you cannot leverage schema compare to its fullest extent (you have to specify to ignore users/logins/permissions)

So again, all I want is 1. to maintain only DB project (no references to DB Server projects) 2. disable/suppress SQL03006 error 3. be able to use schema compare in my DB project

Am I asking for impossible? :)

Cheers

P.S. If someone is aware of better VS2010 database project templates/tools (for SQL Server 2008 R2) please do share...

Arlindaarline answered 14/2, 2011 at 18:21 Comment(0)
P
7

There are two workarounds:

1. Turn off any schema checking (Tools > Options > Database Tools > Schema Compare > SQL Server 200x, then the Object Type tab) for anything user or security related. This is a permanent fix

2. Go through the schema comparison and mark anything user or security related as Skip and then generate your SQL compare script. This is a per schema comparison fix.

It should be obvious but if you already have scripts in your project that reference logins or roles then delete them and they won't get created.

Predictory answered 24/2, 2011 at 22:10 Comment(4)
this partially helps, the project compiles but the deploy script still generates the drop user statementsImproper
In VS2001 SP1, there is no "Tools > Options > Database Tools > Schema Compare"Handwriting
<guessing> This may be an install option? </guessing>. I am running VS2010 SP1 and presuming that this is what you mean when you say "VS2001 SP1" in your comment above?Predictory
Which version of VS2010 are you running? DB Projects are only supported in Premier, Database Edition and Ultimate. Pro and below don't support it.Sparke

© 2022 - 2024 — McMap. All rights reserved.