#SQLFamily – Pay It Forward (T-SQL Tuesday #57)

T-SQL TuesdayT-SQL Tuesday #57 is hosted by Jeffrey Verheul (@DevJef) and the topic is #SQLFamily. This is a topic close to my heart and even while writing this I’m all excited to read other stories. I can go on for ages about #SQLFamily, but I’ve decided to focus on one thing: paying it forward.

One year ago I had never heard about #SQLFamily and I didn’t even know the SQL community existed. I knew people wrote blogs and forum posts, I knew some taught classes and others published books, but I was your average employee: I did my job, learned what I had to learn to do my job well, and searched online to find solutions and better ways to do things.

Then I went to PASS Summit 2013 and the experience turned my life upside-down.

What happened? People welcomed me with open arms. They invited me to join them at #SQLKaraoke, introduced me to their friends, told me stories about SQLSaturdays and taught me about the community. They didn’t tell me about #SQLFamily, they were #SQLFamily. Even before I went back home to Norway I decided that I would do whatever I could to bring the SQL community to Norway.

This is an excerpt from the blog post I wrote after PASS Summit 2013: “I hope to attend and volunteer at a SQLSaturday, maybe even help organize one in Oslo. I hope to share my new knowledge with my co-workers and help improve our solutions at work. I hope to learn even more and get to know my new connections better. Maybe I’ll even make my own presentation and be a first-time speaker some day!”

In the ten months since I wrote that, I’ve become a board member of SQL Server User Group Norway, I’ve volunteered at SQLSaturday Copenhagen, I’ve done a SQLHangout video, I’m organizing the first SQLSaturday in Norway, and for the first time I’ll speak in another country at SQLSaturday Portugal. I’ve met so many wonderful people and I’m looking forward to getting to know even more. It’s hard to believe it all started when #SQLFamily members spent a couple of minutes saying “hi” to me. So little, yet so much! The last ten months have been a whirlwind, and I’ve enjoyed every single moment of it.

I’m so thankful for everything I’ve experienced this year. Paying it forward and helping my local community has given me something meaningful to do every day, and because I have so many amazing memories I’m now even more determined to keep paying it forward, and to give back. I’ve experienced first-hand how something someone might not even think of, like a friendly smile and a “join us”, can mean to someone else.

If I can pay it forward to just one first-timer at PASS Summit 2014, to welcome someone to the #SQLFamily… it will be worth the whole trip.

Pay it forward. You can change someone’s life :)

Stop assuming wrongly and start assuming responsibility (T-SQL Tuesday #56)

T-SQL TuesdayT-SQL Tuesday #56 is hosted by Dev Nambi (@DevNambi) and the topic is assumptions: Your assignment for this month is to write about a big assumption you encounter at work, one that people are uncomfortable talking about. Every team has an elephant in the room. What happens if these big guesses aren’t true?

Stop assuming wrongly
“If you make an assumption, you suppose that something is true, sometimes wrongly.”

We’ve all assumed wrongly at some point. While it’s not always a big deal, sometimes the result can be disastrous. I’ve accidentally deleted all the weekly data in our production data warehouse because I assumed wrongly. (Thank goodness my assumption that we had working backups was correct!)

Most of the time I’m not aware that I make assumptions until something goes wrong, like when I realized I had deleted all that data. That’s when I stop and ask myself why I didn’t ask more questions, why I didn’t do more research, why I didn’t triple-check the logic?

The answer to why I assume wrongly is usually time. In the world of business intelligence there are just not enough hours in a day. When a business user asks for new data or a new report, their answer to “when do you need it?” is usually “yesterday”. We all want to deliver as much as possible in the shortest amount of time, which often leads to everyone making some kind of assumption without actually being aware of it. Business users assume IT knows all the business rules (“that’s supposed to be a negative amount”), IT assumes the business users have specified all requirements in detail (“that’s not in the requirements”), and we don’t take the time to sit down and go through it together.

Which leads me to my next point:

Start assuming responsibility
“If someone assumes responsibility, they begin to have responsibility.”

We need to take our time to collaborate, to ask those questions, to do that research and to triple-check that logic. Don’t assume that everyone else knows what you know, but share your knowledge. Don’t just assume that things work, but see how you can improve them. Work together.

I’ll start with me and make this a goal for me at work :)

SQLHangout #22 – Blabbering about Biml

SQLHangoutWhen Boris (@BorisHristov) invited me to a #SQLHangout I was really honored and couldn’t say no. It’s such a fun idea and I’ve really enjoyed watching the other #SQLHangouts. It’s great to see people’s personalities shine through in videos instead of only reading their blog posts, and I learn something new.

I suggested to chat about Biml, something I’ve only recently begun learning myself that has already saved me many hours of work. I still have so much to learn, but the fact that it took me about 20 hours to learn something new that has saved me and my coworkers hundreds of hours already… That’s worth sharing. If I can do it, you can do it!

Boris named the video “Biml. An introduction.” I thought a more appropriate name was “Blabbering about Biml” :)


(“Oh hi!”)

I forgot to mention their names, but thank you to Julie Smith (@JulieChix) and André Kamman (@AndreKamman) for inspiring me to learn more Biml in their SQLSaturday sessions in Tampa and Copenhagen! :)

Package Configurations and Connection Managers in Biml

Biml (Business Intelligence Markup Language)At work we wanted to start using Biml to speed up development in our existing projects without making too many changes at once. I decided to start by writing Biml files that generates SSIS packages exactly like the ones we already have so we can implement changes faster, and step one was to figure out how to create Package Configurations and Connection Managers in Biml:

– Create an XML configuration file Package Configuration
– Create the Connection Manager specified in the XML configuration file
– Create SQL Server Package Configurations that use the Connection Manager specified in the XML configuration file
– Create Connection Managers specified in the [SSIS Configurations] table in SQL Server
– Create a Parent package variable

I recommend reading Understanding Integration Services Package Configurations by Rafael Salas (b | t) and Getting Started with BimlScript by Paul S. Waters (t) if you’re not already familiar with the basics of SSIS Package Configurations and Biml.

Continue reading →

SQL Server, SSIS and Biml Data Types

This post was first published on May 27th, 2014, and was last updated on July 16th, 2017.

SQL Server, SSIS and Biml Data TypesThe table below shows a simplified mapping between SQL Server, SSIS and Biml data types. The table does not include all possible mappings or all data types, but is meant as a quick reference while developing and learning Biml. It was mainly created as a cheat sheet for myself, but I hope other Biml developers will find it useful :)

(Pssst, if you want to link to this post, you can use this prettier link: https://www.cathrinewilhelmsen.net/BimlDataTypes. Thanks!)

There are some problems mapping certain data types automatically between SQL Server, SSIS and Biml. Different providers and Biml methods will produce different data mapping results. I have written about the problems and differences I have encountered below.

All columns are sortable:

SQL ServerSSISBiml
bigintDT_I8Int64
binaryDT_BYTESBinary
bitDT_BOOLBoolean
charDT_STRAnsiStringFixedLength
dateDT_DBDATEDate
datetimeDT_DBTIMESTAMPDateTime
datetime2DT_DBTIMESTAMP2DateTime2
datetimeoffsetDT_DBTIMESTAMPOFFSETDateTimeOffset
decimalDT_NUMERICDecimal
floatDT_R8Double
geographyDT_IMAGEObject
geometryDT_IMAGEObject
hierarchyidDT_BYTESObject
image (*)DT_IMAGEBinary
intDT_I4Int32
moneyDT_CYCurrency
ncharDT_WSTRStringFixedLength
ntext (*)DT_NTEXTString
numericDT_NUMERICDecimal
nvarcharDT_WSTRString
nvarchar(max)DT_NTEXTString
realDT_R4Single
rowversionDT_BYTESBinary
smalldatetimeDT_DBTIMESTAMPDateTime
smallintDT_I2Int16
smallmoneyDT_CYCurrency
sql_variantDT_WSTRObject
text (*)DT_TEXTAnsiString
timeDT_DBTIME2Time
timestamp (*)DT_BYTESBinary
tinyintDT_UI1Byte
uniqueidentifierDT_GUIDGuid
varbinaryDT_BYTESBinary
varbinary(max)DT_IMAGEBinary
varcharDT_STRAnsiString
varchar(max)DT_TEXTAnsiString
xmlDT_NTEXTXml

(* These data types will be removed in a future version of SQL Server. Avoid using these data types in new projects, and try to change them in current projects.)

Continue reading →

Page 22 of 25 « First...10 ...20 21 22 23 24 ...Last »