<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>SQL Server on Cathrine Wilhelmsen</title>
    <link>https://www.cathrinewilhelmsen.net/tags/sql-server/</link>
    <description>Recent content in SQL Server on Cathrine Wilhelmsen</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <copyright>© Cathrine Wilhelmsen</copyright>
    <lastBuildDate>Wed, 07 Sep 2022 11:20:00 +0200</lastBuildDate>
    <atom:link href="https://www.cathrinewilhelmsen.net/tags/sql-server/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Solving FizzBuzz using SQL</title>
      <link>https://www.cathrinewilhelmsen.net/solving-fizzbuzz-using-sql/</link>
      <pubDate>Wed, 07 Sep 2022 11:20:00 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/solving-fizzbuzz-using-sql/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/sql/ScriptCircle.svg&#34; alt=&#34;Script icon.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;This week, my coworkers and I were given a fun challenge. Using any tool or language, solve FizzBuzz! 🤓 Then present and explain the solution to the rest of the team. This was a fun challenge because our team is a mix of junior-to-senior developers and data professionals, working with everything from SQL to Python to C# to DAX to PowerShell. Those who had never solved FizzBuzz before got the chance to do so, while those who had already solved it got the chance to try again using a different tool or language.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating a SQL Server 2019 Demo Environment in a Docker Container</title>
      <link>https://www.cathrinewilhelmsen.net/sql-server-2019-docker-container/</link>
      <pubDate>Sun, 02 Dec 2018 17:15:02 +0100</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/sql-server-2019-docker-container/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/2018/Docker.svg&#34; alt=&#34;Docker logo.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;About a month ago, I learned something new. I learned how to run SQL Server 2019 in Docker and how to set up my demo environment in a container. Cool stuff! I like whales. Whales are cool.&lt;/p&gt;&#xA;&lt;p&gt;While learning, I started writing this blog post. Then I got &lt;a href=&#34;https://www.youtube.com/watch?v=Faa2dHJNFqQ&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;distracted&lt;/a&gt; and never finished it. This weekend, I had to set up my demo environment again. It was the perfect opportunity to update the content and finally publish this post.&lt;/p&gt;&#xA;&lt;p&gt;(&lt;em&gt;Why did I have to set up everything again? Oh, it&amp;rsquo;s a long story that involves disk cleanup and a Cathrine who likes to delete things to keep her computer tidy. Ok, it&amp;rsquo;s not really a long story. It was more like &amp;ldquo;oops, I accidentally deleted my container&amp;rdquo;.&lt;/em&gt;)&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Anyway! Back to the actual content.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this post, I share my approach and code snippets for:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Installing Docker&lt;/li&gt;&#xA;&lt;li&gt;Getting SQL Server 2019&lt;/li&gt;&#xA;&lt;li&gt;Running SQL Server 2019 in a Docker Container&lt;/li&gt;&#xA;&lt;li&gt;Restoring Demo Databases (AdventureWorks and WideWorldImporters)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;installing-docker&#34;&gt;Installing Docker&lt;/h2&gt;&#xA;&lt;p&gt;I knew &lt;em&gt;nothing&lt;/em&gt; about Docker or containers a month ago. But! I&amp;rsquo;m lucky to have smart friends 🤩 &lt;a href=&#34;https://dbafromthecold.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Andrew Pruski&lt;/a&gt; (&lt;a href=&#34;https://twitter.com/dbafromthecold&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@dbafromthecold&lt;/a&gt;) wrote &lt;a href=&#34;https://dbafromthecold.com/2018/09/25/running-sql-server-2019-ctp-in-a-docker-container/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Running SQL Server 2019 CTP in a Docker container&lt;/a&gt; as part of his brilliant &lt;a href=&#34;https://dbafromthecold.com/2017/03/15/summary-of-my-container-series/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;blog post series on containers&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I decided to start with his walkthrough and do exactly what he did. It worked pretty well for me! See below 👇🏻&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Azure Data Factory v2 with Mike Flasko</title>
      <link>https://www.cathrinewilhelmsen.net/azure-data-factory-v2-mike-flasko/</link>
      <pubDate>Thu, 05 Oct 2017 04:38:38 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/azure-data-factory-v2-mike-flasko/</guid>
      <description>&lt;p&gt;One of the sessions I was most looking forward to at Microsoft Ignite 2017 was &lt;em&gt;New capabilities for data integration in the cloud&lt;/em&gt; with Mike Flasko. In that session, he talks about Azure Data Factory (ADF) v2 and its new first-class SSIS support.&lt;/p&gt;&#xA;&lt;p&gt;After the session, I convinced Mike Flasko and Sanjay Krishnamurthi to have a chat with me 🤓 We talked about what&amp;rsquo;s new in Azure Data Factory v2, including the updated pipeline application model with a new visual design canvas, new Software Development Kits (SDKs) for working with Azure Data Factory, the new Integration Runtime, and the ability to run SSIS packages inside Azure Data Factory v2.&lt;/p&gt;&#xA;&lt;h2 id=&#34;azure-data-factory-v2-with-mike-flasko&#34;&gt;Azure Data Factory v2 with Mike Flasko&lt;/h2&gt;&#xA;&lt;p&gt;&lt;iframe width=&#34;500&#34; height=&#34;280&#34; src=&#34;https://www.youtube-nocookie.com/embed/wr0696EC8pA&#34; title=&#34;YouTube Video Player&#34; loading=&#34;lazy&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>High Performance Analytics with Sunil Agarwal</title>
      <link>https://www.cathrinewilhelmsen.net/high-performance-analytics-sunil-agarwal/</link>
      <pubDate>Thu, 28 Sep 2017 19:25:26 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/high-performance-analytics-sunil-agarwal/</guid>
      <description>&lt;p&gt;At Microsoft Ignite 2017, I had planned an interview with Sunil Agarwal, and was very excited about it. Then Sunil asked if he could bring Kevin Farlee. Of course! Then he asked if he could also bring their customer, Aaron Gerdeman from FIS. Even better! 😁&lt;/p&gt;&#xA;&lt;p&gt;In this interview, we chat about SQL Server 2017, Resumable Index Builds, Adaptive Query Processing, Columnstore Indexes, High Availability, Real-time Analytics, Real-time Dashboards and the SQL Tiger Team.&lt;/p&gt;&#xA;&lt;h2 id=&#34;high-performance-analytics-with-sunil-agarwal-kevin-farlee-aaron-gerdeman&#34;&gt;High Performance Analytics with Sunil Agarwal, Kevin Farlee, Aaron Gerdeman&lt;/h2&gt;&#xA;&lt;p&gt;&lt;iframe width=&#34;500&#34; height=&#34;280&#34; src=&#34;https://www.youtube-nocookie.com/embed/hHVFfEW3k9Q&#34; title=&#34;YouTube Video Player&#34; loading=&#34;lazy&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQL Server 2017 with Bob Ward</title>
      <link>https://www.cathrinewilhelmsen.net/sql-server-2017-with-bob-ward/</link>
      <pubDate>Wed, 27 Sep 2017 17:29:15 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/sql-server-2017-with-bob-ward/</guid>
      <description>&lt;p&gt;During Microsoft Ignite 2017, I got to interview one of the nicest guys in Microsoft, Bob Ward! 🤩&lt;/p&gt;&#xA;&lt;p&gt;In this interview, we chat about SQL Server 2017, SQL Server on Linux, Adaptive Query Processing, Auto Plan Correction and Columnstore Indexes.&lt;/p&gt;&#xA;&lt;h2 id=&#34;sql-server-2017-with-bob-ward---microsoft-ignite-2017&#34;&gt;SQL Server 2017 with Bob Ward - Microsoft Ignite 2017&lt;/h2&gt;&#xA;&lt;p&gt;&lt;iframe width=&#34;500&#34; height=&#34;280&#34; src=&#34;https://www.youtube-nocookie.com/embed/W2zb-a0t_HA&#34; title=&#34;YouTube Video Player&#34; loading=&#34;lazy&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Data Science with Buck Woody</title>
      <link>https://www.cathrinewilhelmsen.net/data-science-with-buck-woody/</link>
      <pubDate>Wed, 27 Sep 2017 04:01:02 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/data-science-with-buck-woody/</guid>
      <description>&lt;p&gt;I got to interview Buck Woody about Data Science at Microsoft Ignite 2017! 🥳&lt;/p&gt;&#xA;&lt;p&gt;In this interview, we chat about Microsoft Business Analytics and AI (formerly known as Cortana Intelligence Suite), Artificial Intelligence in Excel, intent-based programming, Predictive Analytics, DevOps for Data Scientists and life-long learning.&lt;/p&gt;&#xA;&lt;h2 id=&#34;data-science-with-buck-woody---microsoft-ignite-2017&#34;&gt;Data Science with Buck Woody - Microsoft Ignite 2017&lt;/h2&gt;&#xA;&lt;p&gt;&lt;iframe width=&#34;500&#34; height=&#34;280&#34; src=&#34;https://www.youtube-nocookie.com/embed/06EQp2oVLT4&#34; title=&#34;YouTube Video Player&#34; loading=&#34;lazy&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Table Partitioning in SQL Server - Partition Switching</title>
      <link>https://www.cathrinewilhelmsen.net/table-partitioning-in-sql-server-partition-switching/</link>
      <pubDate>Sun, 19 Apr 2015 19:00:44 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/table-partitioning-in-sql-server-partition-switching/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/images/sql/CathrineWilhelmsenSQLServerTablePartitioning_PartitionSwitching.svg&#34;&gt;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/sql/CathrineWilhelmsenSQLServerTablePartitioning_PartitionSwitching.svg&#34; alt=&#34;Partition Switching in SQL Server.&#34; width=&#34;350&#34; height=&#34;350&#34; class=&#34;alignleft width-350&#34; loading=&#34;lazy&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Inserts, updates and deletes on large tables can be very slow and expensive, cause locking and blocking, and even fill up the transaction log. One of the main benefits of table partitioning is that you can speed up loading and archiving of data by using &lt;em&gt;partition switching&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Partition switching moves entire partitions between tables almost instantly. It is extremely fast because it is a metadata-only operation that updates the location of the data, no data is physically moved. New data can be loaded to separate tables and then &lt;em&gt;switched in&lt;/em&gt;, old data can be &lt;em&gt;switched out&lt;/em&gt; to separate tables and then archived or purged. All data preparation and manipulation can be done in separate tables without affecting the partitioned table.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using a Numbers Table in SQL Server to insert test data (T-SQL Tuesday #65)</title>
      <link>https://www.cathrinewilhelmsen.net/using-a-numbers-table-in-sql-server-to-insert-test-data/</link>
      <pubDate>Tue, 14 Apr 2015 21:56:17 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/using-a-numbers-table-in-sql-server-to-insert-test-data/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://sqlmd.wordpress.com/2015/04/07/t-sql-tuesday-065-teach-something-new/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/sql/TSQLTuesdayCircle.svg&#34; alt=&#34;T-SQL Tuesday logo.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;T-SQL Tuesday #65 is hosted by &lt;a href=&#34;https://sqlmd.wordpress.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mike Donnelly&lt;/a&gt; (&lt;a href=&#34;https://twitter.com/SQLMD&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@SQLMD&lt;/a&gt;). There is no specific topic to write about this month, Mike simply wants us to learn something new and then write a blog post to teach it to others. I want to share something that I only recently learned, something I wish I had known about years ago, something that became part of my toolbox as soon as I discovered it: &lt;em&gt;the Numbers Table&lt;/em&gt;. It is so simple and solves so many problems that &lt;em&gt;everyone&lt;/em&gt; should know about it 🤓&lt;/p&gt;&#xA;&lt;p&gt;A Numbers Table (perhaps most known as a &lt;em&gt;Tally Table&lt;/em&gt;, sometimes called an &lt;em&gt;Auxiliary Table of Numbers&lt;/em&gt; and even referred to as &lt;em&gt;the Swiss Army Knife of SQL Server&lt;/em&gt;) is a one-column helper table that contains the numbers 1, 2, 3, 4, 5 and so on all the way up to the-highest-number-you-could-possibly-need.&lt;/p&gt;&#xA;&lt;p&gt;It can be used to replace slower loops and row-by-row operations with faster set-based operations, generate dates, split strings, find gaps in data sets, expand data sets, insert test data and probably hundreds of other things. There are so many great and detailed articles already published about this topic, so I will stick to the T-SQL Tuesday topic of &amp;ldquo;Teach Something New&amp;rdquo; and share the two most recent things I learned: different ways to create a numbers table, and different ways to quickly insert test data by using a numbers table.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Table Partitioning in SQL Server - The Basics</title>
      <link>https://www.cathrinewilhelmsen.net/table-partitioning-in-sql-server/</link>
      <pubDate>Sun, 12 Apr 2015 15:15:03 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/table-partitioning-in-sql-server/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/images/sql/CathrineWilhelmsenSQLServerTablePartitioning_CheatSheet.svg&#34;&gt;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/sql/CathrineWilhelmsenSQLServerTablePartitioning_CheatSheet.svg&#34; alt=&#34;Cheat Sheet of Table Partitioning in SQL Server.&#34; width=&#34;200&#34; height=&#34;200&#34; class=&#34;alignleft width-200&#34; loading=&#34;lazy&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;There are many benefits of partitioning large tables. You can speed up loading and archiving of data, you can perform maintenance operations on individual partitions instead of the whole table, and you may be able to improve query performance. However, implementing table partitioning is not a trivial task and you need a good understanding of how it works to implement and use it correctly.&lt;/p&gt;&#xA;&lt;p&gt;Being a business intelligence and data warehouse developer, not a DBA, it took me a while to understand table partitioning. I had to read a lot, get plenty of hands-on experience and make some mistakes along the way. (&lt;em&gt;The illustration to the left is my Table Partitioning Cheat Sheet.&lt;/em&gt;) This post covers the &lt;em&gt;basics&lt;/em&gt; of partitioned tables, partition columns, partition functions and partition schemes.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQL Server, SSIS and Biml Data Types</title>
      <link>https://www.cathrinewilhelmsen.net/sql-server-ssis-and-biml-data-types/</link>
      <pubDate>Tue, 27 May 2014 18:33:04 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/sql-server-ssis-and-biml-data-types/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelCircle.svg&#34; alt=&#34;Biml Wheel.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;The table below is a simplified mapping between SQL Server, SSIS and Biml Data Types. It does not include all possible mappings or all data types, but is meant as a quick reference while developing and learning Biml. I mainly created it as a cheat sheet for myself, but I hope other Biml developers will find it useful!&lt;/p&gt;&#xA;&lt;div class=&#34;entry-info&#34;&gt;&#xA;    &lt;svg class=&#34;icon icon-info&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 32 32&#34;&gt;&lt;path d=&#34;M 17.48,11.49 V 8.463 h -2.96 v 3.027 z m 0,12.05 v -9.02 h -2.96 v 9.02 z M 16,1 Q 22.2,1 26.6,5.401 31,9.803 31,16 31,22.2 26.6,26.6 22.2,31 16,31 9.803,31 5.401,26.6 1,22.2 1,16 1,9.803 5.401,5.401 9.803,1 16,1 Z&#34;/&gt;&lt;/svg&gt;&#xA;    &lt;p&gt;Can&#39;t remember this post&#39;s URL? Neither can I 😅 You can use this short URL instead: &lt;strong&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/BimlDataTypes&#34;&gt;cathrinew.net/BimlDataTypes&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;cheat-sheet-for-sql-server-ssis-and-biml-data-types&#34;&gt;Cheat Sheet for SQL Server, SSIS and Biml Data Types&lt;/h2&gt;&#xA;&lt;table id=&#34;biml-data-types-table&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th onclick=&#34;sortTable(0)&#34; style=&#34;cursor: pointer&#34;&gt;SQL Server&lt;/th&gt;&#xA;      &lt;th onclick=&#34;sortTable(1)&#34; style=&#34;cursor: pointer&#34;&gt;SSIS&lt;/th&gt;&#xA;      &lt;th onclick=&#34;sortTable(2)&#34; style=&#34;cursor: pointer&#34;&gt;Biml&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;bigint&lt;/td&gt;&#xA;      &lt;td&gt;DT_I8&lt;/td&gt;&#xA;      &lt;td&gt;Int64&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;binary&lt;/td&gt;&#xA;      &lt;td&gt;DT_BYTES&lt;/td&gt;&#xA;      &lt;td&gt;Binary&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;bit&lt;/td&gt;&#xA;      &lt;td&gt;DT_BOOL&lt;/td&gt;&#xA;      &lt;td&gt;Boolean&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;char&lt;/td&gt;&#xA;      &lt;td&gt;DT_STR&lt;/td&gt;&#xA;      &lt;td&gt;AnsiStringFixedLength&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;date&lt;/td&gt;&#xA;      &lt;td&gt;DT_DBDATE&lt;/td&gt;&#xA;      &lt;td&gt;Date&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;datetime&lt;/td&gt;&#xA;      &lt;td&gt;DT_DBTIMESTAMP&lt;/td&gt;&#xA;      &lt;td&gt;DateTime&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;datetime2&lt;/td&gt;&#xA;      &lt;td&gt;DT_DBTIMESTAMP2&lt;/td&gt;&#xA;      &lt;td&gt;DateTime2&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;datetimeoffset&lt;/td&gt;&#xA;      &lt;td&gt;DT_DBTIMESTAMPOFFSET&lt;/td&gt;&#xA;      &lt;td&gt;DateTimeOffset&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;decimal&lt;/td&gt;&#xA;      &lt;td&gt;DT_NUMERIC&lt;/td&gt;&#xA;      &lt;td&gt;Decimal&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;float&lt;/td&gt;&#xA;      &lt;td&gt;DT_R8&lt;/td&gt;&#xA;      &lt;td&gt;Double&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;geography&lt;/td&gt;&#xA;      &lt;td&gt;DT_IMAGE&lt;/td&gt;&#xA;      &lt;td&gt;Object&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;geometry&lt;/td&gt;&#xA;      &lt;td&gt;DT_IMAGE&lt;/td&gt;&#xA;      &lt;td&gt;Object&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;hierarchyid&lt;/td&gt;&#xA;      &lt;td&gt;DT_BYTES&lt;/td&gt;&#xA;      &lt;td&gt;Object&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;image (*)&lt;/td&gt;&#xA;      &lt;td&gt;DT_IMAGE&lt;/td&gt;&#xA;      &lt;td&gt;Binary&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;int&lt;/td&gt;&#xA;      &lt;td&gt;DT_I4&lt;/td&gt;&#xA;      &lt;td&gt;Int32&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;money&lt;/td&gt;&#xA;      &lt;td&gt;DT_CY&lt;/td&gt;&#xA;      &lt;td&gt;Currency&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nchar&lt;/td&gt;&#xA;      &lt;td&gt;DT_WSTR&lt;/td&gt;&#xA;      &lt;td&gt;StringFixedLength&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;ntext (*)&lt;/td&gt;&#xA;      &lt;td&gt;DT_NTEXT&lt;/td&gt;&#xA;      &lt;td&gt;String&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;numeric&lt;/td&gt;&#xA;      &lt;td&gt;DT_NUMERIC&lt;/td&gt;&#xA;      &lt;td&gt;Decimal&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nvarchar&lt;/td&gt;&#xA;      &lt;td&gt;DT_WSTR&lt;/td&gt;&#xA;      &lt;td&gt;String&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nvarchar(max)&lt;/td&gt;&#xA;      &lt;td&gt;DT_NTEXT&lt;/td&gt;&#xA;      &lt;td&gt;String&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;real&lt;/td&gt;&#xA;      &lt;td&gt;DT_R4&lt;/td&gt;&#xA;      &lt;td&gt;Single&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;rowversion&lt;/td&gt;&#xA;      &lt;td&gt;DT_BYTES&lt;/td&gt;&#xA;      &lt;td&gt;Binary&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;smalldatetime&lt;/td&gt;&#xA;      &lt;td&gt;DT_DBTIMESTAMP&lt;/td&gt;&#xA;      &lt;td&gt;DateTime&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;smallint&lt;/td&gt;&#xA;      &lt;td&gt;DT_I2&lt;/td&gt;&#xA;      &lt;td&gt;Int16&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;smallmoney&lt;/td&gt;&#xA;      &lt;td&gt;DT_CY&lt;/td&gt;&#xA;      &lt;td&gt;Currency&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;sql_variant&lt;/td&gt;&#xA;      &lt;td&gt;DT_WSTR&lt;/td&gt;&#xA;      &lt;td&gt;Object&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;text (*)&lt;/td&gt;&#xA;      &lt;td&gt;DT_TEXT&lt;/td&gt;&#xA;      &lt;td&gt;AnsiString&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;time&lt;/td&gt;&#xA;      &lt;td&gt;DT_DBTIME2&lt;/td&gt;&#xA;      &lt;td&gt;Time&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;timestamp (*)&lt;/td&gt;&#xA;      &lt;td&gt;DT_BYTES&lt;/td&gt;&#xA;      &lt;td&gt;Binary&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;tinyint&lt;/td&gt;&#xA;      &lt;td&gt;DT_UI1&lt;/td&gt;&#xA;      &lt;td&gt;Byte&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;uniqueidentifier&lt;/td&gt;&#xA;      &lt;td&gt;DT_GUID&lt;/td&gt;&#xA;      &lt;td&gt;Guid&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;varbinary&lt;/td&gt;&#xA;      &lt;td&gt;DT_BYTES&lt;/td&gt;&#xA;      &lt;td&gt;Binary&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;varbinary(max)&lt;/td&gt;&#xA;      &lt;td&gt;DT_IMAGE&lt;/td&gt;&#xA;      &lt;td&gt;Binary&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;varchar&lt;/td&gt;&#xA;      &lt;td&gt;DT_STR&lt;/td&gt;&#xA;      &lt;td&gt;AnsiString&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;varchar(max)&lt;/td&gt;&#xA;      &lt;td&gt;DT_TEXT&lt;/td&gt;&#xA;      &lt;td&gt;AnsiString&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;xml&lt;/td&gt;&#xA;      &lt;td&gt;DT_NTEXT&lt;/td&gt;&#xA;      &lt;td&gt;Xml&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;script&gt;&#xA;    function sortTable(n) {&#xA;        var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;&#xA;        var id = &#34;biml-data-types-table&#34;;&#xA;        table = document.getElementById(id);&#xA;        switching = true;&#xA;        dir = &#34;asc&#34;;&#xA;        while (switching) {&#xA;            switching = false;&#xA;            rows = table.rows;&#xA;            for (i = 1; i &lt; (rows.length - 1); i++) {&#xA;                shouldSwitch = false;&#xA;                x = rows[i].getElementsByTagName(&#34;TD&#34;)[n];&#xA;                y = rows[i + 1].getElementsByTagName(&#34;TD&#34;)[n];&#xA;                if (dir == &#34;asc&#34;) {&#xA;                    if (x.innerHTML.toLowerCase() &gt; y.innerHTML.toLowerCase()) {&#xA;                        shouldSwitch = true;&#xA;                        break;&#xA;                    }&#xA;                } else if (dir == &#34;desc&#34;) {&#xA;                    if (x.innerHTML.toLowerCase() &lt; y.innerHTML.toLowerCase()) {&#xA;                        shouldSwitch = true;&#xA;                        break;&#xA;                    }&#xA;                }&#xA;            }&#xA;            if (shouldSwitch) {&#xA;                rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);&#xA;                switching = true;&#xA;                switchcount++;&#xA;            } else {&#xA;                if (switchcount == 0 &amp;&amp; dir == &#34;asc&#34;) {&#xA;                    dir = &#34;desc&#34;;&#xA;                    switching = true;&#xA;                }&#xA;            }&#xA;        }&#xA;    }&#xA;&lt;/script&gt;&#xA;&lt;p&gt;(&lt;strong&gt;*&lt;/strong&gt; &lt;em&gt;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.&lt;/em&gt;)&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
