Kockel.be » Techblog

| RSS

Which version of SQL Server is installed?

Every time I want to know which version of SQL Server is installed on a specific environment, I need to go to do some googling to check which name corresponds to the version number I received from my SQL Server. To end this, I’ve created this post as a list primarly for myself but as this is a public blog, I’m also sharing this with everybody else. This list does not contain any SQL Server Express versions yet. Maibe I’ll add them in the future.

To retrieve the version number from your instance of SQL Server, just run the following query.in a query tool like SSMS:

select @@version

This query returns the version number of the current installed SQL Server version.

I hope you’ll find the number in the following list:

SQL Server 2008 R2

10.50.1765.0

SQL Server 2008 R2 CU6

10.50.1753.0

SQL Server 2008 R2 CU5

10.50.1746.0

SQL Server 2008 R2 CU4

10.50.1734.0

SQL Server 2008 R2 CU3

10.50.1720.0

SQL Server 2008 R2 CU2

10.50.1702.0

SQL Server 2008 R2 CU1

10.50.1600.1

SQL Server 2008 R2 RTM

SQL Server 2008

10.00.4272

SQL Server 2008 SP2 CU2

10.00.4266

SQL Server 2008 SP2 CU1

10.00.4000

SQL Server 2008 SP2

10.00.2808

SQL Server 2008 SP1 CU12

10.00.2804

SQL Server 2008 SP1 CU11

10.00.2799

SQL Server 2008 SP1 CU10

10.00.2789

SQL Server 2008 SP1 CU9

10.00.2775

SQL Server 2008 SP1 CU8

10.00.2766

SQL Server 2008 SP1 CU7

10.00.2757

SQL Server 2008 SP1 CU6

10.00.2746

SQL Server 2008 SP1 CU5

10.00.2734

SQL Server 2008 SP1 CU4

10.00.2723

SQL Server 2008 SP1 CU3

10.00.2714

SQL Server 2008 SP1 CU2

10.00.2710

SQL Server 2008 SP1 CU1

10.00.2531

SQL Server 2008 SP1

10.00.1835

SQL Server 2008 RTM CU10

10.00.1828

SQL Server 2008 RTM CU9

10.00.1823

SQL Server 2008 RTM CU8

10.00.1818

SQL Server 2008 RTM CU7

10.00.1812

SQL Server 2008 RTM CU6

10.00.1806

SQL Server 2008 RTM CU5

10.00.1798

SQL Server 2008 RTM CU4

10.00.1787

SQL Server 2008 RTM CU3

10.00.1779

SQL Server 2008 RTM CU2

10.00.1763

SQL Server 2008 RTM CU1

10.00.1600

SQL Server 2008 RTM

SQL Server 2005

9.00.5266

SQL Server 2005 SP4 CU3

9.00.5259

SQL Server 2005 SP4 CU2

9.00.5254

SQL Server 2005 SP4 CU1

9.00.5000

SQL Server 2005 SP4

9.00.4325

SQL Server 2005 SP3 CU15

9.00.4317

SQL Server 2005 SP3 CU14

9.00.4315

SQL Server 2005 SP3 CU13

9.00.4311

SQL Server 2005 SP3 CU12

9.00.4309

SQL Server 2005 SP3 CU11

9.00.4305

SQL Server 2005 SP3 CU10

9.00.4294

SQL Server 2005 SP3 CU9

9.00.4285

SQL Server 2005 SP3 CU8

9.00.4273

SQL Server 2005 SP3 CU7

9.00.4266

SQL Server 2005 SP3 CU6

9.00.4230

SQL Server 2005 SP3 CU5

9.00.4226

SQL Server 2005 SP3 CU4

9.00.4220

SQL Server 2005 SP3 CU3

9.00.4211

SQL Server 2005 SP3 CU2

9.00.4207

SQL Server 2005 SP3 CU1

9.00.4053

SQL Server 2005 SP3 GDR (Security Update)

9.00.4035

SQL Server 2005 SP3

9.00.3356

SQL Server 2005 SP2 CU17

9.00.3355

SQL Server 2005 SP2 CU16

9.00.3330

SQL Server 2005 SP2 CU15

9.00.3328

SQL Server 2005 SP2 CU14

9.00.3325

SQL Server 2005 SP2 CU13

9.00.3315

SQL Server 2005 SP2 CU12

9.00.3310

SQL Server 2005 SP2 Security Update

9.00.3301

SQL Server 2005 SP2 CU11

9.00.3294

SQL Server 2005 SP2 CU10

9.00.3282

SQL Server 2005 SP2 CU9

9.00.3257

SQL Server 2005 SP2 CU8

9.00.3239

SQL Server 2005 SP2 CU7

9.00.3233

SQL Server 2005 QFE Security Hotfix

9.00.3228

SQL Server 2005 SP2 CU6

9.00.3215

SQL Server 2005 SP2 CU5

9.00.3200

SQL Server 2005 SP2 CU4

9.00.3186

SQL Server 2005 SP2 CU3

9.00.3175

SQL Server 2005 SP2 CU2

9.00.3161

SQL Server 2005 SP2 CU1

9.00.3152

SQL Server 2005 SP2 Cumulative Hotfix

9.00.3077

SQL Server 2005 Security Update

9.00.3054

SQL Server 2005 KB934458

9.00.3042.01

SQL Server 2005 "SP2a"

9.00.3042

SQL Server 2005 SP2

9.00.2047

SQL Server 2005 SP1

9.00.1399

SQL Server 2005 RTM

SQL Server 2000

8.00.2039

SQL Server 2000 SP4

8.00.0760

SQL Server 2000 SP3

8.00.0534

SQL Server 2000 SP2

8.00.0384

SQL Server 2000 SP1

8.00.0194

SQL Server 2000 RTM

SQL Server 7

7.00.1063

SQL Server 7 SP4

7.00.0961

SQL Server 7 SP3

7.00.0842

SQL Server 7 SP2

7.00.0699

SQL Server 7 SP1

7.00.0623

SQL Server 7 RTM

SQL Server 6.5

6.50.416

SQL Server 6.5 SP5a

6.50.415

SQL Server 6.5 SP5

6.50.281

SQL Server 6.5 SP4

6.50.258

SQL Server 6.5 SP3

6.50.240

SQL Server 6.5 SP2

6.50.213

SQL Server 6.5 SP1

6.50.201

SQL Server 6.5 RTM

Single sign-on (SSO) in Silverlight 4

For the customers project I’m currently working on, I needed to implement a Single sign-on mechanism in our Silverlight 4 application. They didn’t want their users to login once again into our new application as they are already logged in in windows.

After doing a little bit research on this subject, it seemed to be impossible to retrieve the Windows username directly from our Silverlight application. I had to find a workaround to retrieve the user account so we could load the user profile in our application. How we solved it, was by sending the current Identity as initparam to our Silverlight application. These params are accessible in our Silverlight application during application startup.

Here is our implementation:

Step 1: Add InitParams to our ASPX webpage

Go to the ASPX page that hosts our silverlight XAP (do not use the HTML, this won’t work). In the “Object” tag you can find already a few parameters like source, onError, background, minRuntimeVersion and autoUpgrade. Add the folowing parameter to it where we define our set of initial parameters. On this moment we only got one parameter which is named WindowsAccount. You can add extra parameters here (separated by a comma) like language, …

<param name="Initparams"        value="WindowsAccount=<%=HttpContext.Current.User.Identity.Name%>" />

Step 2: Retrieve the InitParams during Application Startup

When our Silverlight application starts up, we can read the initial parameters during the appliction_startup event in our App.xaml.cs. As we want it to be accessible through our entire application, we create an accessible property in our Application class.

In App.xaml.cs add the following lines of code:

public static string WindowsAccount = string.Empty;

private void Application_Startup(object sender, StartupEventArgs e)
{
    // Retrieve the WindowsAccount parameter
    WindowsAccount = e.InitParams["WindowsAccount"];

    // Other stuff to do here...
    this.RootVisual = new MainPage();
}

Step 3: Access the WindowsAccount in your windows

As we created a public property on the Application class, we can access it now from any screen that can access this application class.

In the MainPage.xaml.cs add the following lines of code to retrieve the WindowsAccount property from our Application class.

// Retrieve the value from our Application Class
WindowsAccount = App.WindowsAccount;

Once you retrieved the WindowsAccount in your class/screen, you have the Windows account in your Silverlight application. You can now go to a database to load the users profile with the correct rights (which we do in our application). You can load all user info without the user asking a password.

A sample project is available for download here.

Note: It is important to turn on the Integrated Windows Authentication on your application that is currently hosting the website. Otherwise the Windows credentials won’t be available in the browser session.

The first Professional Scrum Developer course is announced!

Today we announced our first Professional Scrum Developer (PSD) course. The course will take place in Belgium (probably Antwerp or Mechelen) from 9 till 13 may 2011 and will be teached by myself and my colleague Rudi Larno.

The Professional Scrum Developer course is a unique and intensive five-day experience for software developers. The course guides teams on how to turn product requirements into potentially shippable increments of software using the Scrum framework, Visual Studio 2010, and modern software engineering practices. Attendees will work in self-organizing, self-managing teams using a common instance of Team Foundation Server 2010.

Sparkles / Euricom

Do you want do read more about it or sign up? Check it out here…

Installation of Visual Studio Lab Management

Since the release of Lab Management in august, there has been written a lot of it on the internet. At our company, we’ve also succesfully set up the Lab Management. To prepare this environment, we’ve been using the setup videos as offered by the Microsoft team. These videos are a great medium to setup your environment and to understand the what and how about Lab Management. Check them out!

Title Description

Duration

Overview – Lab Management

Provides an overview of how lab management fits into Visual Studio 2010, the various components, and the following key scenarios:

- Provision environments quickly for testers and developers
- Automate the build-deploy-test cycle
- File rich bugs with environment snapshots that reproduce for the developer

07:44

1 – Setup and Configure Lab Management

Walks you through the setup and configuration steps. Shows you how to setup the Virtual Machine Manager server and how to configure lab management on Team Foundation Server.

The pre-requisites for this scenario are:

- Team Foundation Server – installed and configured
- Test controller and build controller – installed and configured with defaults
- Physical host(s) with Hyper-V

07:27

2 – Create a virtual environment

Walks you through the experience of creating your first virtual environment. Illustrates the two ways to create a new virtual environment – compose environment using running VMs and create a new environment using templates in the library.

The pre-requisites for this scenario are:

- Video 1 – Setup and configure lab management
- One or more virtual machines

08:26

3 – Create Build and Test Artifacts

Shows you how to create build and test artifacts needed to deploy your build on the environment and to run test cases. These artifacts are pre-requisites for the scenarios in the next two videos.

The pre-requisites for this scenario are:

- Video 1 – Setup and configure lab management
- Video 2 – Create a virtual environment
- Source code is checked in

07:51

4 – Automate the build-deploy-test cycle

Walks you through the experience of authoring and running a workflow to build your application, restore environment to a clean snapshot, deploy the build on your environment, take a post deployment snapshot, and run build verification tests.

The pre-requisites for this scenario are:

- Video 1 – Setup and configure lab management
- Video 2 – Create a virtual environment
- Video 3 – Create build and test artifacts

07:01

5 – File a rich bug with environment snapshots

Shows you how to file rich bugs with the environment snapshot, as you run manual tests. Also shows you how the developer can connect to the environment snapshot from the bug to reproduce the error.

The pre-requisites for this scenario are:

- Video 1 – Setup and configure lab management
- Video 2 – Create a virtual environment
- Video 3 – Create build and test artifacts
- Video 4 – Automate the build-deploy-test cycle

06:06

6 – Clone environments using network isolation

Shows you how to create network isolated environments, how to use an application that needs the VMs to be domain joined on such an environment, and how to clone environments without creating conflicts on the network.

The pre-requisites for this scenario are:

- Video 1 – Setup and configure lab management
- Video 2 – Create a virtual environment
- Video 3 – Create build and test artifacts
- Video 4 – Automate the build-deploy-test cycle

08:03

KB2387011 – Hotfix for Microsoft Test Manager 2010

Microsoft has a hotfix for MTM 2010, the testing Manager from Visual Studio 2010 This patch should fix crashes and memory leaks in MTM causing data and productivity loss. Although this is a small hotfix, the installation took about 10 minutes on my machine with VS2010 Ultimate.

Microsoft Test Manager 2010

More information about possible issues can be found here. You can download the fix here.

Find and replace window keeps growing in Visual Studio 2010

When working with Visual Studio 2010, there was a small bug that annoyed me every time I noticed it. I am using the “Find and replace” window (CTRL + SHIFT + H) a lot, and  many times when I used it, it partially disappears from the screen.

The first time you ask yourself the question: “Did I put it there?”. If you have to ask yourself that question once, there’s no problem. If you ask yourself this question every time you use Visual Studio 2010, then there are only two possibilities: or there’s a bug in it, or you are starting getting demented.

 Find and replace disappears from the screen

Luckily for me, this is a bug in Visual Studio 2010. Thanks to this blog post from Gill Cleeren, I found the solution for this problem. There is a bug in VS2010 that every time the window pops up, it grows. That’s the reason why it sometimes partially disappears from the screen.

You can download the fix for this bug here from the Microsoft Connect site

Dear HR Managers campaign

The team of Scrum.org launched a new campaign a few weeks ago to promote the value of Professional Scrum Master certification. To create the campaign, they’ve used all the names of the 500+ certified Professional Scrum Masters on the campaign. I am also on it and highlighted mine in yellow…

Dear HR Managers

More info about the campaign can be found on the scrum.org website or by clicking on the campaign picture itself.

Certified Professional Scrum Developer Trainer

In June this year, I had the opportunity together with 24 other students to follow a full week course organized by Microsoft and Scrum.org to become a Professional Scrum Developer Trainer (PSDT). The first 5 days we got the Professional Scrum Developer .NET (PSD) course given by Richard Hundhausen and Simon Reindl, the two last days we got the Professional Scrum Master (PSM) course given by Eric Mignot. This was a fantastic week meeting a lot of cool people to learn and discuss about great subjects concerning scrum.

After completing several assessments to prove that I had understood the principles of scrum, I am happy to announce you that from now on I am certified as Professional Scrum Master I (fundamentals), Professional Scrum Master II (intermediate), Professional Scrum Developer and last but the most important… Professional Scrum Developer Trainer.

This means that from now on, I am one of the +/- 40 trainers who may teach the Professional Scrum Developer (.NET) course to other students. Great news !

Scrum Developer Trainer

What is Scrum?

Scrum is an empirical process for managing the development and deployment of complex products. The empiricism is dependent on frequent inspection and adaptation to reach the goal. Inspection is dependent on transparency. Scrum rests on the four legs of iterative development: generate potentially shippable (“done”) increments of functionality using self-managing teams that are cross-functional.

And what is the Professional Scrum Developer course?

Professional Scrum Developer (PSD) training courses teach attendees how to use modern software engineering practices to develop an increment of completed, potentially shippable functionality. Additionally this will be the only official course on Visual Studio 2010 team features and Team Foundation Server 2010 authorized by Microsoft (no MOC courses). After following this course, you can complete the PSD assessment to become a certified Professional Scrum Developer yourself!

More info about the PSD course can be found on Scrum.org or at MSDN

Interested?

Are you interested in following a course? Just fill in the request form on our company website for a course in Belgium or check the courses on scrum.org to find a course in your country

SQL Server Configuration Manager launching error

SQL Server Logo As our team is working in several branches at the customer  I’m currently working for, we use aliases to configure our connection string in the web.config of our web- and WCF-services. The advantage of this, is that our connection strings are still working after merging from one to another branch without changing the configs. The only thing we need to do on our development machines, is change the alias to the right SQL server instance.

Although, since a few weeks, I receive the following error when I try to launch SQL Server Configuration Manager:

“Cannot connect to WMI provider. You do not have permission or the server is unreachable. Note that you can only manage SQL Server 2005 servers with SQL Server Configuration Manager. Invalid class [0x80041010]”

After googling a bit, I found a possible solution on the SQLDBA blog post Generic SQL Server Configuration Manager Issues which told that there was a problem with the Managed Object Format (.mof) files on my system. I tried theirs solution, but without success. Running the mofcomp command resulted in an unsolvable error without telling me which property was missing:

An error occurred while processing item 1 defined on lines 4 – 7 in file C:\Prog
ram Files (x86)\Microsoft SQL Server\100\Shared\sqlmgmproviderxpsp2up.mof:
0X80041002 Class, instance, or property ‘’ was not found.
Compiler returned error 0×80041002

After running the mofcomp command, my computer was totally blocked because I stopped the WMI service. Windows XP (yeah, still using that old stuff…) didn’t like it…

SQL Server Client Network Utility

Until now I did not found a proper solution to fix the launching error of the SQL Server Configuration Manager, so i went looking for another way to configure the aliases on a pc. And this seems to be possible with an older tool: the SQL Server Client Network Utility.

This is a small utility which is installed automatically on every Operating System from Windows 2000 to Windows Vista, even without installing the SQL Server Client tools. You can launch it by Start > Run > cliconfig.exe which will show you the next window.

SQL Server Client Network Utility 

In the second tab I could configure my aliases and change it to the correct SQL server instance. Problem solved.

Adding custom messages to the build report in TFS 2008

When modifying a build definition, you’ll probably add some custom tasks to it to fulfill your needs. By default, you won’t see any remarks about this custom task in the build report. To know whether or not the task has run with success, you’ll need to go to the build log file, and find some keywords from your custom task (name of the task, comments of the task, …) to see the result of the custom task.

In Team Foundation Server 2008, the possibility was introduced to insert your own custom message into the build report. This can be done by using the BuildStep task. This task has 3 important parameters:

  • Id: this identifier will be reused to change the status of the build step
  • Message: This is the message users will see in the Build Report.
  • Status: The status of the custom build step (Running, Succeeded, Failed). By default, when you add the task, the status is Running

The following sample shows how to implement the custom build message into your build.

In your target (this can be a custom or an MSBuild target like AfterBuild, AfterCompile, …) you instantiate a BuildStep task,with the custom message just before your custom task. You define the id of that BuildStep task to a property (CustomBuildStepId) which will be accessed later on.

After the custom task, you redefine a BuildStep task which refers to the CustomBuildStepId you defined above to mark the BuildStep as succeeded. This will be only executed when there is no error in the custom task.

To have a correct error handling, we define to call the CustomBuildStepFailed target when an error occurs. In the CustomBuildFailed target, we redefine a third BuildStep task which again refers to the CustomBuildStepId, but now we mark the BuildStep as failed. This CustomBuildStepFailed target must be defined once in your build definition, and can be reused when implementing other BuildStep tasks  (which use the same CustomBuildStepId property).

<Target Name="CustomBuildStep">

  <!-- Create the build steps which start in mode "Running" -->
  <BuildStep  TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
              BuildUri="$(BuildUri)"
              Message="Custom Build Step Message"
              Condition=" '$(IsDesktopBuild)' != 'true' ">

    <!-- Assign the id of the BuildStep task to the CustomBuildStepId property -->
    <Output TaskParameter="Id" PropertyName="CustomBuildStepId" />
  </BuildStep>

  <!-- Execute the Custom Task -->
  <CustomTask />

  <!-- Mark the Custom Build Step as "Succeeded" -->
  <BuildStep TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
             BuildUri="$(BuildUri)"
             Id="$(CustomBuildStepId)"
             Status="Succeeded"
             Condition=" '$(IsDesktopBuild)' != 'true' " />

  <!-- When an error occurs, go to the target "CustomBuildStepFailed" -->
  <OnError ExecuteTargets="CustomBuildStepFailed" />
</Target>

<Target Name="CustomBuildStepFailed">
  <!-- Mark the Custom Build Step as "Failed" -->
  <BuildStep TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
             BuildUri="$(BuildUri)"
             Id="$(CustomBuildStepId)"
             Status="Failed"
             Condition=" '$(IsDesktopBuild)' != 'true' " />
</Target>

More information about the BuildStep task can be found here