Wednesday, June 17, 2009

SoCal Code Camp Sessions Posted…

Ok, I know I am a little late but that is only because I had high hopes of putting together some other sessions.  Unfortunately my schedule is keeping from from doing all the sessions I would like, but I did post my session abstracts for the upcoming SoCal Code Camp in here San Diego on June 27th and June 28th.

Here they are:

IT Pro Panel: Q&A for Developers
Join Steve Evans, Denny Cherry, and I as well as others for an open panel on IT issues that affect developers!  Bring your questions and answers!

SQL Server Express Edition for the Hobbyist, Student & Professional
SQL Server Express is a free edition of the SQL Server Database Engine and related tools. This session will introduce you to the Express Edition, it's capabilities, it's limitations, and licensing concerns. We will also look at third party tools that can be downloaded and used with SQL Server Express to replace functionality that is missing

SQL Server Integration Services Control Flows
In this session we will cover the specifics of SQL Server Integration Services Control Flow. Control flow is where SSIS developers manage the sequencing of tasks within an SSIS package. Control Flow concepts covered in this session include tasks, precedence constraints, containers, variables and more. Understanding the core concepts of control flow is the foundation of creating effective SSIS Packages.

SQL Server Integration Services Data Flows
In this session we will focus on a specific SSIS task: The "Data Flow" task. The data flow is the most commonly used tool to move data in an SSIS package. It is in the data flow that you specify the data sources, transformations, and destinations for your data movement process. Data Flow concepts covered in this session include Connection Managers, Data Sources, Data Destinations, Transformations, Error Output, and more.

If you haven’t had a chance to see my SSIS Control Flow and Data Flow sessions before, they are like a mini SSIS class.  They are a great place to start if you haven’t worked with SSIS before!  They are also a great place to figure out problems you may have had if you are already using them!

There are a ton of other sessions, and more sessions on SQL Server than I think I have ever seen at a non-sql specific code camp!  Book the dates now, and I hop to see you there!

Wednesday, June 3, 2009

SSRS 2008 Architecture Slide

This is a PowerPoint slide I use in my SSRS presentations.  Feel free to grab and use it:

SSRS 2008 Architecture Overview PPTX Screen Shot

Wednesday, February 11, 2009

Introduction to SQL Server for Windows Administrators…

I presented at the WiNSUG user group here in San Diego last week (Feb 5th, 2009).  My topic was “Introduction to SQL Server for Windows Administrators”.  It was pouring rain, so I really appreciate the folks that made it to the meeting.

I have posted the slide deck from my session up on my website so feel free to download it if you would like: icon_pptxIntroduction to SQL Server for Windows Administrators

Slide Title Screen Shot

Reporting Services Architecture Diagram…

I have a standard diagram that I draw on the board when I teach reporting services classes.  I have lately however been teaching some classes online and drawing this diagram by hand on the screen gets a little tedious.  To simplify my life, I drew it in Visio so I could re-use it.  I am posting it up here so that my students, or anybody else for that matter can grab the diagram and re-use it. 

It represents a typical SQL Server 2005 native reporting services deployment.  This also describes the basic structure of a 2008 install, just replay IIS with HTTP.SYS) I may update it in the future, or create another version to include SharePoint installations. 

Use the links below to download the image.  If you update it, or have suggestions for improving it let me know! 

Reporting Services Overview Diagram for Blog

 icon_zip  Download the original Visio Diagram as well as a JPG and PDF (0.5MB)

Tuesday, February 10, 2009

Applying a Collation to Columns in a View….

Steve Evans asked me a question today that was kind of interesting.  His question was something like:

“I have a view that returns data from multiple tables.  I want two of the columns returned through the view to be case sensitive.  Can I just have the view treat those two columns as case sensitive, or do I have to define those two columns on the tables as case sensitive?”

Or more generically, “Can I return a column in a view with a different collation than the source column?”.

The short answer, is that yes, we can enforce a collation on a column in a view that is different than the collation on the source columns.

The following code creates a view that returns the ProductID column, and two versions of the Name column from the AdventureWorks.Production.Product table.  The first Name column is left to the same collation as the source column, but the second Name column (aliased as NameSensitive) specifies a case sensitive collation for the column in the view. 

USE AdventureWorks;

GO

CREATE VIEW

  Production.ProductSensitive

AS

SELECT

  ProductID,

  Name,

  Name COLLATE SQL_Latin1_General_CP1_CS_AS AS NameSensitive

FROM Production.Product;

 
The key piece is the line:
 

   Name COLLATE SQL_Latin1_General_CP1_CS_AS AS NameSensitive

Most database developers know collations can be applied to databases and columns, but many don’t realize that we can apply collations to expressions as well.  That is exactly what we are doing in that line.  We are applying the case sensitive collation SQL_Latin1_General_CP1_CS_AS to the expression in the select list. 

After running the code above to make the view, we can test that it works correctly by running the following statements:

--Should match at least one row. The [Name] column

--is not case sensitive

SELECT * FROM Production.ProductSensitive

WHERE Name='awc logo cap';

 

--Won't match any rows because [NameSensitive] is

--case sensitive

SELECT * FROM Production.ProductSensitive

WHERE NameSensitive='awc logo cap';

 

--Will match rows because [NameSensitive] is

--case sensitive, and the 'AWC Logo Cap' literal

--uses the proper case.

SELECT * FROM Production.ProductSensitive

WHERE NameSensitive='AWC Logo Cap';

Anyhow, that was a fun question to answer, and thought it might be of either real use, or at last theoretical use to others.  Let me know if you end up using somewhere and why. 

Saturday, January 24, 2009

SoCal Code Camp Video Stream

There is this cool site called qik.com that allows you to stream video from your phone to the net. 

Here are videos from the 2009 So Cal Rock and Roll Code Camp in Fullerton:

(Ok, so this may not be working in IE8.  It is working for me in FireFox though)

If you're here at code camp, sign up on qic.com, join the event on qik.com and stream some video yourself! 

SoCal Code Camp Slide Decks

Ok, so I am finally posting the slides for my SoCal Code Camp sessions this weekend.   Get 'em here while they're hot. 

Getting Started with Windows Azure (0.8 MB)
These are the slides from my "Getting Started with Windows Azure" talk at the CSUF SoCal Code Camp on 01/24/09

Get Started with SQL Data Services (0.5 MB)
These are the slides from my "Getting Started with SQL Data Services" talk at the CSUF SoCal Code Camp on 01/24/09

SQL Server Integration Services Control Flows (0.1 MB)
Given at the SoCal Code Camp in Fullerton on 01/25/09

SQL Server Integration Services Data Flows (0.1 MB)
Given at the SoCal Code Camp in Fullerton on 01/25/09

Thanks for those that attended my sessions!!  I hope you got something out of it.