SqlDropDatabase, SqlCreateDatabase MSBuild tasks
When working with SQL, I often find I need to quickly spin up/tear down local developer database instances – for example, setting up a clean environment for integration tests on the build server, or blowing away test data.
To help make this easier, here are a couple of MSBuild tasks I wrote that allow you to drop an existing database:
<SqlDropDatabase ConnectionString="Server=.SQLEXPRESS;Database=AdventureWorks;Integrated Security=SSPI;" Database="AdventureWorks" />
… and to create a new (empty) one.
<SqlCreateDatabase ConnectionString="Server=.SQLEXPRESS;Database=AdventureWorks;Integrated Security=SSPI;" Database="AdventureWorks" />
It’s also sometimes helpful to be able to parse individual individual keys out of a connection string (e.g. the the database name). This can be very tedious with RegexMatch/RegexReplace, so I wrote a separate MSBuild task to do it:
<SqlParseConnectionString ConnectionString="Server=.SQLEXPRESS;Database=AdventureWorks;Integrated Security=SSPI;"> <Output PropertyName="myDb" TaskParameter="InitialCatalog" /> <Output PropertyName="myServer" TaskParameter="DataSource" /> <Output PropertyName="myTimeout" TaskParameter="ConnectTimeout" /></SqlParseConnectionString><Message Text="Parsed the $(myDb) database on server $(myServer) with timeout = $(myTimeout)." />