custom script task

How to import flat files with a varying number of columns in SQL Server

Posted on

Ever been as frustrated as I have when importing flat files to a SQL Server and the format suddenly changes in production? Commonly used integration tools (like SSIS) are very dependent on the correct, consistent and same metadata when working with flat files. So I’ve come up with an alternative solution that I would like to share with you. When implemented, the process of importing flat files with changing metadata is handled in a structured, and most important, resiliant way. Even if the columns change order or existing columns are missing. Background When importing flat files to SQL server almost […]

Database

Undelete object from database

Posted on

Have you ever tried to delete an object from the database by mistake or other error? Then you should read on in this short post. I recently came across a good co-worker of mine who lost one of the views on the developer database. He called me for help. Fortunately the database was in FULL RECOVERY mode – so I could extract the object from the database log and send the script to him for his further work that day. I think I saved him a whole day of work… Here is the script I used: select convert(varchar(max),substring([RowLog Contents 0], […]

Database

Ready, SET, go – how does SQL server handle recursive CTE’s

Posted on

First of all, a quick recap on what a recursive query is. Recursive queries are useful when building hierarchies, traverse datasets and generate arbitrary rowsets etc. The recursive part (simply) means joining a rowset with itself an arbitrary number of times. A recursive query is defined by an anchor set (the base rowset of the recursion) and a recursive part (the operation that should be done over the previous rowset). This blogpost will cover some of the basics in recursive CTE’s and explain the approach done by the SQL Server engine.

Database

Use of hierarchyid in SQL Server

Posted on

I attended a TDWI conference in May 2016 in Chicago. Here I got a hint about the datatype hierarchyid in SQL Server which could optimize and eliminate the good old parent/child hierarchy. Until then I (and several other in the class) hadn’t heard about the hierarchyid datatype in SQL Server. So here’s an article covering some of the aspects of the datatype hierarchyid – including: Introduction How to use it How to optimize data in the table How to work with data in the hierarchy-structure Goodies Introduction The datatype hierarchyid was introduced in SQL Server 2008. It is a variable […]

BIML

Enlarge AdventureWorksDW2012

Posted on

Just recently I had to have a big datawarehouse solution to test some performance optimization using BIML. I could use the AdventureWorks2012 database, but I needed the clean datawarehouse tables in order to have minimum data maintennance when testing the BIML scripts. I could not find it, and figures out it was faster to make my own. So heavily inspired by this post from Jonathan Kehayias (blog), I’ve made a script that can be used to enlarge the dbo.FactInternetSales table. The script creates a new table called dbo.FactInternetSalesEnlarged and copies data from dbo.FactInternetSales into it with a randomizer. Exploding the […]

Database

Prep for MCSA: SQL Server 2012

Posted on

Ready, Steady, GO!! Today I’ve just passed the last certification on the road to MCSA: SQL Server 2012. GREAT!! What a journey and what a huge pile of books, blog-links and other stuff. The usual training kits from Microsoft Press has been read and been the base for further reading and study. A few days ago Microsoft launched their youtube channel with 3 very good videos regarding the path to MCSA: SQL Server 2012. It brings one 1 hour 15 mins long video for all three certifications. 70-461: Querying SQL Server 2012 70-462: Administering SQL Server 2012 70-463: Implementing Datawarehouse […]

Database

SQL 2012: Performance monitoring the light and right way

Posted on

Ever had that awesome SQL tracer build up that does just the right thing for your system – well I know that I had. And someday you might need just the same trace again. But now you need to build it again… Here comes the feature Extended Events in place. It was first introduced in the SQL 2008 version. The feature is a good and lightweight event-driven mechanism for collecting information about your SQL server.