Presenting online for PASS DBA Virtual Chapter

I’ll be presenting on POWERSHELL FOR THE DBA  to the PASS DBA Virtual Chapter

Sept 28, 2016, Noon Eastern Time

Abstract: This webinar introduces the SQL DBA to PowerShell and how it can be used to automate many common SQL Server tasks and monitor SQL Server metrics. You will be shown the basics of PowerShell and see examples of using it to automate and monitor SQL Server more efficiently, utilizing freely available SQL PowerShell modules, including the newly available SQLServer PowerShell module released with SQL Server Management Studio 2016, and other community SQL modules.

Registration link is here:

Will share my powershell demo scripts and recommended PowerShell resources on my PowerShell and SQL presentation page.

My first book review! SQL Server 2014 with PowerShell v5 Cookbook

Has been a very busy year for me, haven’t posted lately, but was very excited to share this.

I’ve had the opportunity to be a technical reviewer for three PowerShell books this year!

One that I’ve really enjoyed reviewing has just been released, and the publisher Packt is offering an end of year sale for $5 eBook editions.

Donabel Santos ( & @sqlbelle) is a wonderful blogger, author, trainer, and Microsoft MVP. This is her second PowerShell cookbook for SQL, and it’s an incredibly useful resource for learning the practical details of PowerShell, both in general and when working with SQL Server. All her examples come with code samples so you can leverage her scripts to get productive right away.

You can check out the book on the Packt website. It’s only $5 for a great PowerShell & SQL eBook, or $30 for the eBook and print version. It’s a phenomenal resource, and a great deal for DBAs looking to take the plunge into PowerShell, and DBAs familiar with PowerShell ready to expand their knowledge about all that’s possible with PowerShell in SQL.

Please let me know if you found her book useful, and have a Merry Christmas, Happy New Year, and enjoyable holiday season. 🙂



SQL 2016 WILL have HTML5 reports!

Very exciting news for Reporting Services users, who may have felt left out regarding all the new SQL features of late.

SQL 2016 will have a new rendering engine that will generate HTML5 reports!  You can provide feedback to Microsoft right from within SSRS development, so I imagine they will use that feedback to produce a lot of hotfixes and workarounds over the first few months after release.You can always switch back to the original rendering engine in a report if HTML5 doesn’t work out for you.

I’ll be interested to investigate how reports can be CSS-styled for functionality, for mobile presentation, and to coordinate with the  look and feel of the site in which they are presented.

More info on books online:

SQL 2016 CTP2 is out, with Technet Virtual Labs ready to learn!

Microsoft just released SQL 2016 CTP 2. CTP is a customer technology preview, that lets us explore new features of the product before it’s released to marketing (RTM).

I found it in my MSDN new downloads.

Not ready to download and install it but still want to learn?

Technet Virtual Labs already has SIX virtual labs you can use to explore the new features!

SQL Server 2016 Virtual Labs!
SQL Server 2016 Virtual Labs!

Just search for SQL 2016


Ignite 2015 in Chicago! Keeping track of sessions in Google calendar

I’m lucky and honored to be volunteering this year with the Hand On Labs team here at Ignite 2015 in Chicago. Hope to blog about the amazing lab environment in a future post.

I’m catching as many sessions as I can, and wanted to import my Ignite schedule into Google calendar on my phone. The kind folks at Ignite provided a help document for exporting the My Ignite schedule into various calendars, but the steps for Google Calendar were not clear to me, so perhaps this will help someone else attending Ignite this year.

1.Log into your My Ignite site. Click on My Schedule.

2.Right-Click the Export Calendar link, and copy the URL.
Ignite schedule to google calendar, step 1

3.Paste it into notepad, and replace webcal with https. Copy to clipboard again.

Ignite schedule to google calendar, step 2

4. Open Google Calendar, click the triangle by ‘Other calendars’ and choose Add by URL.Paste the link there, and click Add to Calendar button.
Ignite schedule to google calendar, step 3

5. Events imported, though I’m not sure how I’ll attend 5 sessions at one time…

Ignite schedule to google calendar, step 4

Let me know if this helped you, and enjoy the conference!

Get your Public IP and Geographic Data with PowerShell


Always fascinated by what can be done very tersely with PowerShell.

I saw an interesting tip on that gives the geopraphic info on a given public IP. They had a post I dug up a couple years back that determines your public IP dynamically, so I connected the Lego blocks… here is a script that determines your public IP and tells you where you are, using a web page and a REST API.

#Determine Public IP Dynamically
$ipaddress = (Invoke-WebRequest '' -UseBasicParsing).Content
$infoService = "$ipaddress"
#Get Geographic Data based on my IP
$geoip = Invoke-RestMethod -Method Get -URI $infoService
#As a One-Liner
(Invoke-RestMethod -Method Get -URI "$(Invoke-WebRequest '' -UseBasicParsing)").Response


Scripting COMPLETE Full-Text indexes after a database restore

You may find yourself working with SQL 2000 databases, or later versions of SQL that were migrated from SQL 2000, with the Full-Text indexes stored outside the SQL data files.

In this scenario, once you restore a SQL Server database, your full-text catalogs and the full-text indexes within are not restored along with your data.

Note that this is not required for Full-Text indexes created in SQL 2005 and later, when the storage for Full-Text Catalogs was changed.

Right-Clicking and choosing to script the full-text catalog will NOT create the indexes within the catalog.

I found a useful script at that scripts out the full-text catalog AND indexes. EDIT: However it misses some indexes, I found a better script at the bottom of the comment thread at this blog at

This script at will rebuild the full-text catalogs for all those newly created full-text indexes. This may be a useful maintenance plan script as well.

I had full-text catalogs with names that include spaces (FT Index) so I had to modify it slightly (added these brackets: [” + + ”] ) to work.

Of course now those indexes need to populate. Found this stackoverflow post that gives a solution for one database, here’s my query to check population status for all catalogs.


--Check all fulltext catalogs on server. Ok to run as a single line.
--1 means populating, 0 means idle
EXEC sp_MSForEachDB 'SELECT FULLTEXTCATALOGPROPERTY(,''PopulateStatus'') as [?] FROM [?].sys.fulltext_catalogs AS cat'


Presented on SQL 2012/2014 – What You Need to Know

Yesterday New Horizons in Fort Lauderdale asked me to present to some of their customers on SQL 2012 and and 2014, focusing in on the new features most essential to know. You can find the slides in the Presentations link above.

The presentation was only 3 hours, so I really struggled with what to cover, and I boil down the most important features to these:

  1. AlwaysOn in SQL 2012/2014
  2. Clustered ColumnStore Indexes in SQL 2014 (2012 has Non Clustered ColumnStore Indexes only)
  3. In-Memory OLTP in SQL 2014

Yes, I talked about DQS,MDS,Tabular,SSIS Project Model, T-SQL Enhancements, Azure options, and some other cool features. But the three above are, in my opinion, the most important.

Disagree with me? Let me know your opinion in a comment or by contacting me!