I received my SQL Azure CTP1 code yesterday (which you can register for here) and finally got around to plugging it in. Upon entering your code and entering a admin username and password, MSFT creates a database server for you fixed to the USA_Northwest region with a randomly assigned name (such as "q57qq26s2c") and in the project "SDS-only CTP Project". The UI on sql.azure.com for managing the database server includes a method to reset your admin password, functions for creating and dropping databases and generation of ADO.NET, ODBC, and OLE DB connection strings. That last one's handy to get the full dns name of the database, in the form of servername.ctp.database.windows.net, which can be used later in sqlcmd or SQL Server Managment Studio. That's it, though, no other db management features. According to the welcome e-mail, this CTP will limit use to 1 SQL Azure server and 5 databases.
Full SQL Server Managment Studio (SSMS) support isn't all there - you can't view databases, but you can connect and execute queries. The "USE" statement doesn't work, so you can't flip your query to another existing database. Guidelines and Limitations (SQL Azure Database)
Microsoft has a workaround on the forums (just start a new query in SSMS, connect to your specific database via the Options and you're good, except for an 'ANSI_NULL' error message which can be ignored). SSMS does time out quite quickly, so don't leave that query window idle too long (A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An established connection was aborted by the software in your host machine.)) Also there's sqlcmd, which, not being a "database person," I didn't know existed.
Ok, but, really, is it just a SQL database out there, in the cloud? Yes, it totally is.
I created a DB via their UI and then opened an existing Windows desktop app I had which uses Castle ActiveRecord, modified the config.xml connection.connection_string property and ran one of my test methods (you use TestDriven, right?) that creates a schema and then F5'd to fire up the UI. Add, Update, Delete, like a charm. I'll probably do a few more tests where I have a db schema created from scratch over the next few days.
Creating a database is easy (especially if you have Subsonic or Castle ActiveRecord do schema management for you), but what about existing databases? Can I restore a backup to the cloud?
After looking around, SSIS seems the only way to go. Use an existing db to generate the create scripts for the schema, then use SSIS to push over the data. I've never used SSIS so this should be fun.
Summaries from the forum postings, etc:
First off, please note that "SQL Azure" used to be called "SDS" - SQL Data Services - so some of the postings may not look like they apply, but it's the "SQL Azure - Getting Started" forums - they apply. The name changed on 07/09.
"Cursors will be IN, XML data type will be IN (but no schema collection support), Local temp tables are IN (#employee), Global temp tables are OUT (##employee), CLR integration is OUT This is also our current plan for v1.
" - Stan Kitsis, Program Manager, SQL Data Services, 07/30/2009
"TSQL Support in SQL Data Services," 07/07/2009, Stan Kitsis, SQL Azure Team Blog
Forums postings