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: https://msdn.microsoft.com/en-us/library/ms170438.aspx

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 PowerShell.com 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 'http://myip.dnsomatic.com' -UseBasicParsing).Content
$infoService = "http://freegeoip.net/xml/$ipaddress"
#Get Geographic Data based on my IP
$geoip = Invoke-RestMethod -Method Get -URI $infoService
#As a One-Liner
(Invoke-RestMethod -Method Get -URI "http://freegeoip.net/xml/$(Invoke-WebRequest 'http://myip.dnsomatic.com' -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 humakhurshid.blog.com 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 blog.strictly-software.com

This script at mikesdatawork.wordpress.com 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: [” + sftc.name + ”] ) 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(cat.name,''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!

Helping out at TechEd 2014 in Houston

I am privileged to be a member of the fifty or so Microsoft Certified Trainers who are volunteering their time this week with the Hands On Labs here at TechEd 2014 in Houston. There are 300 general use machines plus 400 machines dedicated to Instructor Led Labs.

Look at my computer lab! 🙂

Hands On Labs area at TechEd 2014
Hands On Labs area at TechEd 2014 (click to enlarge)

There are over 150 different labs available at the conference, all created and hosted by HynesITe. They do this with over 70 host servers, many with half a TERABYTE of RAM, all from a single colocation facility in Tampa, Florida. The labs are made up of one to several  virtual machines that are spun up and ready for the attendees when they sit down to learn.

I asked a ton of questions, and learned that while Microsoft is their biggest client, it’s just one of many. They host around ten thousand different labs for customers all over the world.

They use Hyper-V on Windows Server 2012 R2, and I suspect they are the the largest user of Hyper-V in terms of scope and scale.

I find the process and infrastructure behind supporting so many  virtual labs fascinating, and will research the topic further. A very big thanks to the HOL team for talking with me and sharing their knowledge.

Bi-Annual blog post

Yes, six months just went by.

Since I’ve last posted:

My youngest  is walking, and also talking (in his own language, English will come soon I’m sure.)

I’ve assisted a small handful of clients and their customers with their database, application and infrastructure needs.

Taught SQL querying and administration classes onsite around Florida.

Delivered a custom PowerShell Module and PowerGUI interface to a client for testing.

Next week will deliver a 5 day class on using SQL 2012 SSIS to populate a data warehouse.

Then I’m off to Houston to learn and to volunteer along with the other MCTs there to help deliver hands on labs to thousands of TechEd attendees.

Talk to you again in six months (or less, hopefully.)

Back to Work, and ain’t it Great?

Aaaaaaaaaaaaaaaaand a month goes by.  🙂

PASS Summit 2013 was a great experience, made several contacts, a few friends, and learned a lot about SQL, and lot more about this I.T. industry we are in. It’s a big place, and the rules are continually changing.  

It was a pleasure to volunteer as an MCT Ambassador with the other MCTs and the Microsoft folks, helping people prepare for and take their certification exams. I was lucky to witness several very smart (and nervous) people taking the MCM SQL Exams before the program is retired at the end of the year. Talking to ‘potential masters’ during their breaks was inspiring.

One takeaway from the conference for me was the appreciation for the community, and the desire to learn how to give back. What do I have to offer to the SQL community and the I.T. community, both at large and in my area? There’s so many brilliant people communicating so effectively,  I wonder where I fit in, how can I help best? 

So while I’m pondering, I’m working too. As a technology geek,  I’m really enjoying being a consultant right now. I have a few projects taking turns holding my focus, each interesting and challenging. Some of the highlights are:

  • Creating PowerShell 3 modules.
  • Working with some amazing SQL monitoring tools.
  • Creating a simple web service with .Net 4.5 and the REST API Framework.
  • New custom SQL training coming up.

So work is varied, interesting and challenging, and only occasionally overwhelming. I work from home more often than not, which has its own challenges without a doubt. But I’m thankful to be close to my family, and get a few moments with my wife,  and my 5 year and (newly) 1 year old boys throughout the day. So though life is often hectic, it is good. And that’s great. 🙂