How to Stop SSDT / Database Projects / SQLPackage from Modifying Database Options
SQL Server’s free state-based version control tooling was introduced under the ‘Data Dude’ brand, then became known as ‘SQL β¦
Read MoreBy Kendra Little on β’ 4 min read
One of the things that brings Microsoft MVPs together each year is complaining about reporting community contributions to Microsoft.

This is a typical first world problem, but with a history of reporting tools ranging from temperamental Infopath forms to websites where you painstakingly click here and there for hours, there have been reasons for the complaints.
This year I decided to try out using PowerShell to add my contributions. This has been available for about a year thanks to FranΓ§ois-Xavier Cat and a few friends, but I’d completely forgotten that it was possible until William Durkin reminded me about it on Twitter.
First time ever, I didn’t wait until the last minute to start thinking about my annual contributions. Instead, I took a little time to learn about how this works – and now I’ll keep my contributions in a spreadsheet and then upload them right before the deadline.
Here are my notes on what I found, and why I’ll still wait to upload.
The documentation for setup is quite good. I used the main documentation and it went very smoothly.
One note: in the docs it mentions that your request will be reviewed and accepted by an administrator within a couple of business days. Mine appeared to be auto-approved and I didn’t have to wait at all, I was able to start using my subscription right away.
There are only two hard things in Computer Science: cache invalidation and naming things.
Phil Karlton
The most painful part of uploading contributions with PowerShell wasn’t getting the upload to work: it was figuring out that the cache for the MVP website doesn’t get cleared by PowerShell uploads which use the API.
This means that the contributions you see on your profile on the website are probably not the current version at all if you’re uploading via PowerShell, because that cache is way out of date.
This is true if you are:
I’m no scripting genius, but I came up with a simple command to export all my contributions for review:
Get-MVPContribution -Limit 500 | export-csv exportedcontributions.csv
This also gives you the ContributionId for each of your contributions, in case you want to delete any.
One of the main questions I had when starting out was whether re-running New-MVPContribution would be smart enough to identify matching existing contributions with the same date and description, and update other information, such as the ‘AnnualReach’.
Why this matters: Microsoft doesn’t publish the criteria they use to select MVPs, but if I was them, I’d pay a lot of attention to those reach numbers.
So when it comes to items like videos, I want to report the reach at the end of the review cycle, not just after I post the video.
Finding: New-MVPContribution does not find and update contributions. If you rerun an import for a .csv file with contributions, it’s very easy to create duplicates.
It’s simple to get a list of all your contributions using Get-MVPContribution (see my workaround above), and then run a delete loop using the ContributionIds with code like this sample in the documentation.)
My new way of doing this is…
It’s certainly not perfect, but it’s waaaaaaay better than an old infopath form, so I’m happy to have it.
Copyright (c) 2025, Catalyze SQL, LLC; all rights reserved. Opinions expressed on this site are solely those of Kendra Little of Catalyze SQL, LLC. Content policy: Short excerpts of blog posts (3 sentences) may be republished, but longer excerpts and artwork cannot be shared without explicit permission.