Yesterday I got my CTP invitation for SQL Azure Services, which is one of Microsoft’s new cloud offerings, along with .NET Services and Live Services. Microsoft says:
Microsoft® SQL Azure Database is a cloud-based relational database platform built on SQL Server® technologies. With SQL Azure Database, you can easily provision and deploy relational database solutions to the cloud, and take advantage of a globally distributed data center that provides enterprise-class availability, scalability, and security with the benefits of built-in data protection, self-healing and disaster recovery.
So what does it mean? You can host your relational DBs in the cloud.
But you – yes, you – the cynical, embittered, battle-scared database developer who has been through the wars, came home to the mist-covered mountains, only to find yourself drafted for the next relational battle – you squirm. You cringe. Your junior-developer enthusiasm for The Next Great Thing has waned, almost to the point of vanishing. When presented with a tasty block of swiss cheese, all you can see are the holes.
So what makes up the cheese – and the holes – of the SQL Azure Services platform? Let’s start to take a look; although it will probably take many blog posts.
Naming
My first question: is “SQL Azure Services” what used to be called “SQL Data Services?” Dunno. The roadmap docs are all over the place and I don’t have time right now to trace the lineage.
Signing Up
Signing up is a breeze. You get your invitation code in e-mail, whose format looks like xxxxxxxx-yyyy-zzzz-aaaa-bbbbbbbbbbbb. You go to http://sql.azure.com and sign up with a Windows Live ID, and you’re good to go.
Server Administration
There’s a Manage link when you log in that takes you to the Server Administration page for your SQL Azure account. From here you can get your connection string info, reset your password, and manage databases (see below). They give you a server name with which to refer, and a geographic location that tells you where your server is (in my case, “USA_Northwest”). Since this is a cloud offering, I still haven’t figured out how they replicate/backup/stand up new instances, but we’ll figure that out later.
Creating Databases
You’re initially presented with (what else) a master database. There’s a little button labeled “Create Database” which does what it says it does. Interestingly, you can’t use hyphens or underscores in your DB names. Is that a current limitation in SQL 2008? (checks) Nope. Hm.
Creating Tables
How do you create tables in SQL Azure Services? The web-based Server Administration page doesn’t appear to offer a way. I see some info on connecting to SQL Azure Services via SQL Management Studio, which is very cool – but my first attempts are fruitless:
SQLCMD using the –S and –U parameters didn’t work either. Could it be that the Starbucks I’m working from blocks port TCP port 1433? I noticed that SQLCMD attempted to connect via Named Pipes, which is obviously incorrect. How to get it to connect via TCP? (checks) Ah. I need to preface the address with tcp: Trying:
SQLCMD.EXE –S tcp:<servername> –U <username> –P <password>
…hm. Still no luck.
HResult 0x274C, Level 16, State 1
TCP Provider: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
So, what’s next? Let’s back up. Can I ping the server?
Nope. Of course, what with security being sort of important these days, I would have been surprised had MSFT left ping responses turned on.
Can I telnet to port 1433?
A little better: at least I can see that the connection failed, rather than just getting a report that the server is not available. I’m coming to the conclusion that I can’t get TCP port 1433 traffic at Starbucks, so I’ll close up this test session and resume from home later tonight.

