Domanda

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...

È stato utile?

Soluzione

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top