How to REALLY Add or Delete a Task or a Container in a Control Flow in Visual Studio 2013


I was staring at Visual Studio 2013 in disbelief, looking at the empty Toolbox thinking I missed an installation step, even though all the other functionality of SQL Server Integration Services (SSIS) was working just fine.

After doing a little digging (this time Stack Overflow did not help), it turns out that SSIS has its own dedicated Toolbox, and it’s basically hidden.

Thanks to an article by Robert Bigec, the answer is pretty simple, but not obvious.

The Empty Toolbox – SSIS 2012 | Robert’s Spout.ToString()

I stared at this toolbox in disbelief. White and spacious with a confirming message that gave me no comfort: “There are no usable controls in here … “. What happened to the Source Assistant? Where in the world is the Destination Assistant? Merge: gone! Data Conversion: gone! Forget about adding an Execute SQL Task, this is not happening! I guess, I’m not making any more Integration Services packages, unless I work on another computer, or go back to 2008. Maybe this is a bug. It could be, because it is a new product, right? Maybe I should file a bug report. No, it can’t be a bug, someone would have reported it by now. I must have done something to mess it up. I vaguely remember opening up another project to look at it and closing the toolbox because it was in the way, but it should come back shouldn’t it? Yeah, it should come back, but it didn’t. Desperately searching for some way to get the items back, I trolled the menus, scoured the icons and noticed this. Click! It’s back. Yay! Hoorah! Happy days are back again!

Thanks to Robert for the answer!


Smashing Magazine on Lo-Fi Prototyping

Many of my colleagues know that I like to do lo-fi prototypes since I can iterate so much faster on them, get a sense of whether it’s a good design choice or not.

So, it was really nice to see this article on Smashing Magazine by Laura Busche on the subject, entitled The Skeptic’s Guide To Low-Fidelity Prototyping | Smashing Magazine

In it, she shows that:

Low-fidelity prototypes, in particular, are rough representations of concepts that help us to validate those concepts early on in the design process. Throughout this article, we will look at some of the features that make low-fidelity prototyping a unique tool to radically improve your work and to build an environment in which users’ needs can be truly realized.

As it turns out, I’ve recently been using lo-fi paper prototyping for my new app design and it’s been very helpful and, best of all, not time consuming.

Hope this article helps other designers and developers!

Using Temporary Tables in SQL Statements

Found this to be a really helpful tip from Using Temporary Tables in SQL Statements. I wanted to be able to quickly construct a temporary table within a stored procedure and this was just a super-simple set of examples to get that going.

Hope others find it useful as well!

Using Temporary Tables in SQL Statements

Temporary tables can be used in the SQL statement wherever the regular tables can be used. To identify a table being a temporary table in the SQL statement, prefix the table name with the ‘#’ character.


// Create a temporary table named Temp1 with two columns
CREATE TABLE #Temp1 ( Name Char( 30 ), seqid integer );

// This example creates two temporary tables for intermediate results
// Step 1. Create a temporary table named DeptCount and at the same time
// populate it with summary data from an existing table in the
// database

SELECT deptnum, count(*) as NumEmployees
INTO #DeptCount
FROM employees
GROUP BY deptnum

// Step 2. Create another temporary table named LocCount which list the
// number of employees in each location for each department.

SELECT deptnum, location, count(*) as cnt
INTO #LocCount
FROM employees
GROUP BY deptnum, location

// Finally using the 2 temporary tables to list the percent of employee
// on each location for each department

SELECT a.deptnum, a.location, ( a.cnt * 100 ) / b.NumEmployees As PercentAtLocation
FROM #LocCount a, #DeptCount b
WHERE a.deptnum = b.deptnum