SQL Develop

Deployment of Assemblies to SQLCLR

Today, after having arrived in Durban (South Africa), to do a gig here this coming week, I was going to start a serie of blog-posts about Complex Event Processing (CEP) and Microsoft StreamInsight.

However, as some of you may know, I am fairly interested in SQLCLR (the hosting of CLR inside SQL Server), and it happens from time to time that I try to help out with questions that arises on the forums and newsgroups.

One of the questions that pops up from time to time has to do with how to deploy assemblies which have references to other assemblies when using the Visual Studio “SQL Server Project” project data type.

So I decided to write a small post about it, so that I – in the future – just can point to that post instead of having to repeat it every time.

If you are interested, the post is here.

Hello World

A couple of days ago, I wrote a blogpost about me changing to a self-hosted blog. I also wrote that there might be more announcements regarding this move. So I guess it is time to do that announcement now;

I have started a new venture; SQL Develop, where I and others will do database and .NET development, consulting and mentoring. This does not mean however that I will stop doing work for DevelopMentor, nothing changes in my relation to DM.

I am extremely excited about this new venture, and stay tuned for more announcements!

Hosting of Code Samples

The other day when I posted about the sample how to call a WCF Service from a SQLCLR method, I mentioned that I had no place to host my demo-code. I did not want to create a project on CodePlex (like I did with the SQLCLRProject), as demo code is not really projects per se.

I discussed this with David Reed from Microsoft who is a PM on the SQL Server team, and has a lot to do with overseeing the SQL projects on Code Plex. He mentioned MSDN’s Code Gallery, which is a place where you can create resource pages and upload code for download. So, earlier today I created a new resource page on the Code Gallery, and uploaded the SQLCLR to WCF sample to there. My intention is to upload other SQL Server related samples as well as How-To articles to there.

How-To Article about Calling a WCF Service from SQLCLR

I sometimes (not as much as I would like) hang out at some of the user forums where people talk about SQL Server generally and the SQLCLR specifically. Ever so often the question is being asked how to call into a WCF service from SQLCLR (.NET code running inside SQL Server).

The other day I became tired of giving exactly (or thereabout) the same answer for the n:th time, so I decided to croft up some code and write a mini How-To about how to call into a WCF service from SQLCLR. So without any further ado, the How-To article can be found here. I do not have anywhere to host the code yet (my usual hosting place disappeared – don’t ask), so until I decide where to host you can drop me an email if you want to see the code.

Update: I have now created a Resource Page on MSDN’s code gallery, where the sample code for the article can be found. So if you want to get the code, go to here.

New Home for SQLCLRProject

About a year ago, I wrote how I were about to re-surrect the SQLCLRProject tool, and in that process I created some new pages for it here at my Wordpress blog.

This tool has had some interest, and it seems that quite a few of you are interested in helping out to take it forward. So due to that, and the fact that there are issues where I hosted it for download, I have today created a CodePlex project for it. You can find its new homepage here.

At the moment there are no source code there, just the binaries. I am in the process ofcleaning up the source code, and as soon that is done – I will upload it there as well.

So, go over there and have fun!!

Debugging in SQL Server 2008

As good as SQL 2005 was (well, still are), one disappointment was that you needed Visual Studio if you wanted to debug your stored procedures. Seriously, what was MS thinking when they did that, especially as in SQL 2000, Query Analyzer had debug capabilities?!!

Anyway, today I am playing around, errm – doing serious stuff in the RC0 release of SQL Server 2008, and just by coincidence notice that there is a debug menu entry in the toolbar(how blind can one be – I must have been looking at that toolbar quite a few times). So I wrote some T-SQL code, put in a couple of breakpoint and hit Alt + F5, and lo and behold – my bp’s were hit and I could step through the code. I then wrote a very basic stored proc, wrote some code that called the proc, put a bp at the call into the proc and executed. When the execution stopped at the bp I hit F11 and I stepped into the proc – WoHoo!!! Call me sad, but stuff like this make me happy!!

Now, let’s hope that MS will keep this feature in and not pull it at the last minute – anyone remember the XQuery designer in one of the very early SQL 2005 beta’s??

SqlClrProject version 2.6 Released

I have just released a new version – 2.6 – of the deployment tool for SQLCLR assemblies. It is a minor release, but it implements some changes that are fundamental for coming versions and also fixes a couple of minor bugs.

The download page for it is here, and if you want general information about what the SqlClr project is, you should go here.

Like Phoenix Rising … or New Version of SQLCLRProject

Hi everyone, it’s been a while :-) (shame one me!)!!

As some of you may know, back in the days I developed a tool for deploying .NET assemblies to SQL Server 2005 (or, as it was called then, Yukon). Initially it was just a tool used from the command line. As time went by, it evolved into a project named SQLCLRProject, consisting of the command line tool (YukonDeploy), a stand-alone front-end GUI, DeployProperties, and an add-in (with project and item-templates) for Visual Studio, DeployAddIn.

The latest release of SQLCLRProject was back in February 2006 (wow, that was a long time ago :-( ) , and up until a month or so, nothing much was done to it. I used it whenever I did any SQLCLR work and I know other developers were using it as well. Anyway, a while back I started receiving emails from people wondering if I could fix some “undocumented features” and/or implement some new features.

So, I decided to resurrect the project and the last weeks I have been working on fixing the issues and adding some more features. I’m fairly happy with it as it is right now, and today I release version 2.5. The download page for it is here.

So what has been done:

  • The project has now it’s own web-pages, so I have a place to point people to when explaining what SQLCLRProject is.
  • The Visual Studio add-in (and templates) supports both VS 2005 as well as VS 2008
  • The VS add-in (as well as the other tools) supports both SQL Server 2005 as well as SQL Server 2008 (Katmai).
  • The previous version of the tool allowed you to re-deploy a UDT without manually dropping tables with columns based on the UDT. The tool either dropped the whole table or just the column (based on a configurable setting), before re-deploying. In this version the choice is as before to either to drop the whole table or the column. However if choosing to drop the column:
    • first the table is altered and a new column is added (varchar(max) or varbinary(max) – also based on a configurable setting),
    • then the data from the original column is copied over to the new column
    • finally the original column is dropped.
  • In T-SQL we have the notion of procedure parameters with default values. In .NET we don’t have anything similar (well, VB.NET has optional parameters, but that is a compiler hack). The tool now allows you to, by using an attribute, defining parameters in your .NET code that will be created as T-SQL object with default values.
  • Fixed a bug where the add-in for VS could not handle project with white spaces in the path.

So, if you are interested, go to here to read more about SQLCLRProject and if you want to download; the download page is here.

Comments etc are always welcome, post a comment here (or on the main page) or drop me an email.

Niels

SQL Develop