I just finished up our last gig for SQL Server 2005 Ascend last week in Paris (OK… in Les Ulis). It was my first class on the June CTP, and it seemed to go without incident. Students were enthusiastic and a good time appeared to be had by all. There are a two more “rescheduled for a later date” classes still to be done, but this is for all intents and purposes the end of Ascend phase 2 for us.
The only technical surprise of the week came when I added some rows to a table containing a UDT. After I did a “SELECT * FROM udttab” from SSMS, the rows are displayed in binary (back to the original behavior a la beta1), but when the UDT column contained a NULL value, I got the well-known “Assembly … or one of its dependencies cannot be found”. After making the assembly available I received, not the expected database NULL, but the binary value that corresponded to my UDT when it was NULL. Hmmm. It sounds like a few folks have been asking about this, and its been reported as a bug already. Interesting behavior. Using SQLCMD, the value NULL is displayed as you’d expect.
I just wanted to thank the folks from Ascend and thank the students as well. It’s been a great time, I’ve enjoyed the traveling, the technical challange, and the nice reception that I received everywhere. Au revoir!
Now on to the release…keep on watching for more information.
3 Responses to Au revoir, Ascend
I thought I read that this wasn’t a bug, but is correct behavior, and that we should use ToString() if we want to see the string representation of the type? Isn’t the binary there such that we can pull down the type and deserialize it on an ADO.NET client?
I’d expect the return from SSMS and SQLCMD to be consistent because they are both system-supplied utilities, used by DBAs. Having to call a ToString() function on SSMS but not on SQLCMD seems counterintuitive.
If SSMS (with UDT binary) produces "0x…." and SQLCMD (with UDT binary) produces "NULL" this is sure to cause confusion. Both produce the same binary value for non-NULL UDTs. I really think its an incorrect behavior.
I still can’t get this to work with RTM SSMS. It will not call .ToString() on my UDT. I just get the bytes view. Anything I can try?