Wednesday, August 29, 2012

Skype as a windows update!

Today I got the normal windows update notification in my tool bar, and was surprised that it's showing Skype as an Important Update! I searched for the KB number and found out that's it's now part of windows updates!


Tuesday, August 14, 2012

T-SQL Tuesday #33 – Trick Shot – SSRS User Input

It’s T-SQL Tuesday time again, and this time it's about Trick Shots, my trick today is using SSRS to accept user input!

Of course it’s not the best way to use SSRS as it’s a presentation layer and so limited in doing that using Parameters and sub-Reports which will fire a code or a stored procedure to update or delete a record…but IT COULD BE DONE!!

The Trick:

1-I started by creating a new project in VS 2008, “Report Server Project” type.

2-I’m using SQL 2008 R2 as my testing platform…I’ve created a test DB called “Admin”

3-I created a test table called “Employees” contains only 3 columns.

Create TABLE Employees
ID int IDENTITY (1,1),
Name varchar(50),
Comments varchar(MAX)

4- Inserted 4 test records…

Insert Employees VALUES('Jason', 'Lazy Employee')
,('Yousef', NULL)
,('John', 'Anything Goes')
,('Smith', NULL)

5-back to VS, Created a Shared Data Source to my Admin DB

6-created 3 Blank reports, using the shared Data Source.

1- To display the records which in the table.
2- A user summary and confirm screen of which record will be updated and with what.
3- A done screen, which will call a stored procedure or just have a simple inline T-SQL query.

That’s the trick in the second report, you need to hide the ID and keep the Comments Parameter visible and allow it to accept NULL Value, so it display the record before you need to enter the value. And also if you need an empty comment, such as to clear the comments field or whatever.

7-The design…

Report1: 1ReportsToDB.rdl
Just a basic table, drag the 3 fields to the table, added an extra field with an expression of =CHR(0254) and Font of: Wingdings Just to display a shape without using an image.
Please refer to my article for shapes in SSRS

Also I added an action to that text field to go to report 2 and pass the ID.

Report2: 2ReportsToDB-Confirm.rdl

Again a simple table with the basic 3 fields and added another field for the new Comments value which is using an expression of: =Parameters!Comments.Value and a field for a confirmation symbol, yes again using my favorite shapes font WINGDINGS , with action to run the 3rd report and pass the ID and the new comments.

Report3: 3ReportsToDB-Done.rdl

I added 3 text fields, but it’s all optional (for fun).

Just with an action to go back to the first report and the summary or what was done!!

Lets’ run and test it….

I’ll click next to my name on the check mark to update my comments…
That’s what you get at first because we allowed the NULL, that’s the trick to see the table before the parameter gets initialized.

Remove the NULL check mark and enter the new comments….

You’ll get the confirmation above…
Now click on the check mark to confirm the change, yes you guessed it right…it’s the wingdings shapes again ¿
And that’s what you get..

I’ll click on my GO Back, to the first report to check the data.
Done.. my record was updated in the DB.

Again that’s for the purpose of showing that SSRS is more than a presentation layer and that was the simplest part.

What I Learned

 that it could get more complicated and done more professionally using Custom .NET code, functions or even a simple stored procedure that knows to delete or update or even insert new record based on a flag.

Hope that helps someone…

The project can be downloaded from


Loop over .sql files using SSIS

This is fairly easy and simple, the requirement is to loop over a folder full of .sql files, that has some queries and run them on the server!

This could be a stress testing queries, create multiple object or drop and recreate indexes queries as in my actual requirement.

We'll need a "For EachLoop container "to iterate over the folder, read the files' location into a STRING variable.

Add a "Execute SQL Task" inside the container, setup the SQL server connection, then setup the query to be from a file connection.

create the file connection, pointing to one of the files.
set the delay validation to true, then setup an expression over the Connection String property.

That's it!!

The package can be downloaded at:
Hope that helps someone...

Thursday, August 2, 2012

Attach AdventureWorks 2012

Quick and easy, but I see people in forums are asking about it...
You may download the .MDF file from here:
I'd typically download and save it with the rest of the data files, maybe at the default location or any other drive if you prefer.

The default location would be:
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA

Then, right click on your DATABASES under your server name and select ATTACH

Then you'll get the following screen, where you would normally navigate to the download directory and select the advntureworks2012.mdf file.

After you click on OK, you will see that the log file is missing and SQL server will display "Not Found", just highlight the log file and click on remove, then OK.

You're done!! attached ans ready for testing...