Click here to monitor SSC
Robert Sheldon

SQL Server XML Questions You Were Too Shy To Ask

Sometimes, XML seems a bewildering convention that offers solutions to problems that the average database user doesn't have. To make things worse, XML experts generally lack the wherewithal to provide simple answers to even the simplest questions. Rob Sheldon, in contrast, can answer even those questions we somehow feel silly asking in public, and think twice about doing so. Read more...

Dwain Camps

High Performance Relational Division in SQL Server

Relational division is used in SQL to select rows that conform to a number of different criteria. It is a neglected but effective technique for a number of tasks. Although the SQL can appear daunting and complex, it can perform very well if you reduce the rows as much as possible before applying the final logic. Dwain Camps explains how, and shows the performance gains. Read more...

Jes Borland

SQL Server Indexed Views: The Basics

Views are a valuable tool for the SQL Server Developer, because they hide complexity and allow for a readable style of SQL expression. They aren't there for reasons of performance, and so indexed views are designed to remedy this shortcoming. They're great in certain circumstances but they represent a trade-off, and they come with considerable 'small print'. Jes Borland explains. Read more...

Joe Celko

SQL Server SEQUENCE Basics

The SEQUENCE statement introduced in SQL Server 2012 brings the ANSI SQL 2003 standard method of generating IDs. This is a great relief to database professionals as it solves some problems what are awkward to solve with the IDENTITY property. Joe Celko explains the basics of using a SEQUENCE Read more...

Phil Factor

Primary Key Primer for SQL Server

Every database developer uses keys, but without always understanding all the ramifications. They come with few hard and fast rules, but if you get them right from the start with a database design, the whole process of database development is simpler, and the result is likely to perform better. We asked Phil for advice, little knowing that the explanation might take a while. Read more...

Dwain Camps

A SQL-Based Universal Currency Formatter

SQL Server isn't usually the best place to format dates or currency as strings. It can be a complex task to conform correctly with national and cultural conventions. Just occasionally, though, you need to do it. This is easy in SQL Server 2012, but if you aren't using that, what do you do? Read more...

Seth Delconte

Precision Indexing: Basics of Selective XML Indexes in SQL Server 2012

Seldom has a SQL Server Service pack had such an effect on database development as when SQL Server 2012 SP1 introduced selective XML indexes. These transform the practicality of querying large amounts of XML data. Seth Delconte demonstrates how and why this feature makes all the difference. Read more...

Grant Fritchey

Statistics in SQL Server

SQL Server's Query Optimiser relies on statistics for providing a decent query plan. If the statistics are wrong, outdated or missing then you have little realistic hope of having queries that perform well. It is therefore important to appreciate how SQL Server maintains distribution statistics. Read more...

Joe Celko

SQL VIEW Basics

SQL Views are essential for the database developer. However, it is common to see them misued, or neglected. Joe Celko tackles an introduction to the subject, but there is something about the topic that makes it likely that even the experienced developer will find out something new from reading it. Read more...

Thomas LaRock

Tom LaRock's SQL Server Howlers

In this next article in our series where well-known SQL Server people write about their favorite SQL Server Howlers, we asked Tom Larock for his top five common misunderstandings about how SQL Server works that end in tears, and plaintive forum questions. Read more...

Fabiano Amorim

Window Functions in SQL Server: Part 3: Questions of Performance

A SQL expression may look elegant on the page but it is only valuable if its performance is good. Do window functions run quicker than their conventional equivalent code? Fabiano gives a definitive answer. Read more...

Robert Sheldon

Incorporating XML into your Database Objects

XML data can become a full participant in a SQL Server Database, and can be used in views, functions, check constraints, computed columns and defaults. Views and table-valued functions can be used to provide a tabular view of XML data that can be used in SQL Expressions. Robert Sheldon explains how. Read more...

Robert Sheldon

The XML Methods in SQL Server

The XML Data type has definite uses, but the way of interrogating, retrieving, and manipulating the values of properties and attributes within XML have been so foreign to the SQL language as to be somewhat of a barrier to their use. Fortunately, Robert Sheldon has once more managed to make the subject accessible to those of us who just need to get the job done. Read more...

Fabiano Amorim

Window Functions in SQL Server: Part 2-The Frame

Fabiano continues his introduction to SQL Server's implementation of the window functions by giving a history of what got implemented and when, and explaining the concept of the 'Frame' in a window function, with plenty of examples. Read more...

Robert Sheldon

Working with the XML Data Type in SQL Server

The XML data type, introduced in SQL Server 2005, is a powerful construct. When used wisely, it can provide useful extensions to SQL Server. Robert Sheldon, in the first part of a series, describes how create and index a typed XML column in a table, and discusses when you should consider using an XML Datatype. Read more...

Fabiano Amorim

Window Functions in SQL Server

When SQL Server introduced Window Functions in SQL Server 2005, it was done in a rather tentative way, with only a handful of functions being introduced. This was frustrating, as they remove the last excuse for cursor-based operations by providing aggregations over a partition of the result set, and imposing an ordered sequence over a partition. Now, with SQL Server 2012, we are soon to enjoy a full range of Window Functions. They are going to make for some much simpler SQL queries. Read more...

Roy Ernest

Resource Governor

If you suffer from runaway queries, if you have several database applications with unpredictable fluctuation in workload, or if you need to ensure that workloads get the memory or CPU they need according to certain priorities, then you need Resource Governer, and you need Roy Ernest's clear explanation of the technology. Read more...

Robert Young

Going Beyond the Relational Model with Data

SQL is a powerful tool for querying data, and for aggregating it. However, you can't easily use it to draw inferences, to make predictions, or to tease out subtle correlations. To provide ever more sophisticated inferences to businesses, the race is on to combine the power of the relational model with advanced statistical packages. Both IBM and PostGres are ready with solutions. And SQL Server? Hmm... Read more...

Chris Shaw

Building Your DBA Skillset

As a DBA and hiring manager, Chris Shaw has been on those sides of the recruitement process. As an MVP and active member of the SQL Server community, he knows what resources are available to help DBAs hone their abilities. Who better to guide you through the many paths to developing your DBA skillset? Read more...

Fabiano Amorim

ShowPlan Operator of the Week - Split, Sort, Collapse

'Split, Sort & Collapse' is, happily, not a description of the intrepid Fabiano after his epic series of articles about the ShowPlan operators. With renewed stamina, Fabiano continues his mission to describe all the major operators by explaining the Trivial Plan and the power of unique indices. Read more...

Joe Celko

Check your Digits

The most persistent struggle in data processing has been to ensure clean data. There are many ways that data can be incorrect and a database must check, as best it can, that the data is correct. The CHECK constraint is ideally suited for this sort of work, and the checking routine can become quite complex when dealing with check digits in data. Read more...

Phil Factor

How to Import Data from HTML pages

It turns out that there are plenty of ways to get data into SQL Server from websites, whether the data is in tables, lists or DIVs Phil finds to his surprise that it is easier to use Powershell and the HTML Agility Pack, than some of the more traditional approaches. Web-scraping suddenly becomes more resilient. Read more...

Timothy Wiseman

SQL Injection: Defense in Depth

So much has been written about SQL Injection, yet such attacks continue to succeed, even against security consultants' websites. The problem is often that only part of the solution is described, whereas the best practice requires the use of defense in depth. Read more...

Paul White

Understanding and Using Parallelism in SQL Server

SQL Server is able to make implicit use of parallelism to speed SQL queries. Quite how it does it, and how you can be sure that it is doing so, isn't entirely obvious to most of us. Paul White begins a series that makes it all seem simple, starting at the gentle level of counting Jelly Beans Read more...

Grant Fritchey

Change Management and Source Control

So, given the many good reasons for using Version Control systems for managing the changes in database applications, how does one go about the rather different routines of team development, such as testing, continuous integration, and managing data? What are the issues you're likely to face? Read more...

Robert Sheldon

Bulk Inserts via TSQL in SQL Server

The trouble with using BCP for reading data into SQL Server is that BCP is a command-line program. Fortunately, the same input functionality is available from TSQL within SQL Server. In fact there are two ways, and it is not always obvious which to use. Read more...

Fabiano Amorim

Showplan Operator of the Week - Merge Interval

When Fabiano agreed to undertake the epic task of describing each showplan operator, none of us quite predicted the interesting ways that the series helps to understand how the query optimiser works. With the Merge Interval, Fabiano comes up with some insights about the way that the Query optimiser handles overlapping ranges efficiently Read more...

Michelle Ufford

Effective Clustered Indexes

As a guideline, clustered Indexes should be Narrow, Unique, Static and Ever Increasing (NUSE). Michelle Ufford Explains why. Read more...

Robert Sheldon

The DELETE statement in SQL Server

Of the big four DML statements in SQL Server, the DELETE is the one least written about. This is odd considering the extra power conferred on the statement by the addition of the WITH common_table_expression; and the OUTPUT clause that essentially allows you to move data from one table to another in one statement. Read more...

Fabiano Amorim

ShowPlan Operator of the Week - Merge Join

Did you ever wonder how and why your indexes affect the performance of joins? Once you've read Fabiano's unforgettable explanation, you'll learn to love the MERGE operator, and plan your indexes so as to allow the Query Optimiser to use it. Read more...

Robert Sheldon

Working with Window Functions in SQL Server

With SQL Server 2005, SQL Server introduced some of SQL's window functions, that apply, not to the full set, but a partitioned 'window'. Although the ROW_NUMBER, RANK, NTILE and DENSE_RANK bring great power to TSQL, the full versatility will not be available until SQL Server delivers the full implementation. As usual, Robert Sheldon explains all. Read more...

Joe Celko

VALUES() and Long Parameter Lists - Part II

The use of the comma-separated list of parameters to a SQL routine, that Phil Factor calls the 'comedy-limited list, is a device that makes seasoned SQL Database developers wince. The best choice of design for passing variable numbers of parameters or tuples to SQL Routines varies according to the importance to you of SQL Standards. Joe Celko discusses the pros and cons of the front-runners Read more...

Fabiano Amorim

Showplan Operator of the Week - SORT

Fabiano introduces another ShowPlan operator that is used to build a query plan, or perform an operation specified in the DML. Once again, Fabiano demonstrates why it is important to be aware of these operators when getting queries to perform well. Read more...

Robert Sheldon

Working with the INSERT statement in SQL Server

The INSERT statement in SQL Server is versatile. It now allows the insertion of multiple rows of literal values. It also provides the output clause that solves a number of common problems such as ascertaining the value of identity fields, and other calculated fields in tables, or for auditing the rows that are added to tables. Robert, once again, gives a clear introduction. Read more...

Jonathan Lewis

Oracle to SQL Server: Putting the Data in the Right Place

Jonathan Lewis is an Oracle expert who is recording his exploration of SQL Server in a series of articles. In this fourth part, he turns his attention to clustered indexes, and the unusual requirement SQL Server seems to have for the regular rebuilding of indexes. Read more...

Fabiano Amorim

Showplan Operator of the Week - Stream Aggregate

Fabiano continues his mission to explain the Query Optimiser in practical terms, describing, one week at a time, all the major Showplan Operators used by SQL Server's Query Optimiser to build the Query Plan. He discusses the Stream Aggregate function and shows how easy it is to get performance gains in GROUP BY clauses by choosing the right index. Read more...

Joe Celko

The DIS-Information Principle, Part II

Database design simply involves populating a schema with tables that model sets of entities and relationships. A table will contain Columns that model an entity's attributes and contain scalar values. What could go wrong? Plenty, unfortunately, when these simple principles are misunderstood or flouted, and Joe continues to itemise bad design practices that can cause subsequent grief for the application developers. Read more...

Robert Sheldon

The MERGE Statement in SQL Server 2008

When the SQL MERGE statement was introduced in SQL Server 2008, it allowed database programmers to replace reams of messy code with something quick, simple and maintainable. The MERGE syntax just takes a bit of explaining, and Rob Sheldon is, as always, on hand to explain with plenty of examples. Read more...

Robert Sheldon

Implementing the OUTPUT Clause in SQL Server 2008

In retrospect, it was probably the inclusion of the OUTPUT clause in the MERGE statement that gave SQL Server 2008 its most powerful SQL enhancement.. It isn't the easiest of features to explain, but Bob does it in his usual clear and careful way. Read more...

Joe Celko

VALUES() and Long Parameter Lists

To make progress as a relational Database programmer, you have to think in terms of sets, rather than lists, arrays or sequential data. Until that point, you'll feel the need to pass lists, arrays and the like to functions and procedures. Joe suggests some unusual ways around the difficulty and broods on the power of the VALUES constructor. Read more...

Fabiano Amorim

Showplan Operator of the Week - Row Count Spool

The Row Count Spool operator is a simple component in an execution plan that can make an enormous difference to SQL query plans that would otherwise read a table on every row of the inner input to a nested loop. As this is a common type of query, it illustrates the power that a knowledge of your showplan operators can give you. Read more...

Fabiano Amorim

Operator of the Week - Index Spool

If you've ever wondered what happens to your queries if you're not conscientious about creating indexes, then Fabiano Amorim has yet another nugget of Execution Plan wisdom for you. The Query Optimizer's solution is to use the Nonclustered Index Spool, and we're about to learn why. Read more...

Jonathan Lewis

Oracle to SQL Server, Crossing the Great Divide, Part 3

We soon learn, in SQL Server, that heaps are a bad thing, without necessarily understanding how or why. Jonathan Lewis is an Oracle expert who doesn't like to take such strictures for granted, especially when they don't apply to Oracle. Jonathan discovers much about how SQL Server places data, and concludes from his experiments that heaps perform badly in SQL Server because you cannot specify a fill factor for them. Read more...

Robert Sheldon

UPDATE Basics in SQL Server

SQL Server's UPDATE statement is apparently simple, but complications such as the FROM clause can cause puzzlement. Bob Sheldon starts simply, and introduces the more complex forms painlessly. Read more...

Hima Bindu Vejella

Book Review: The Art of XSD - SQL Server XML schemas

The 14 chapters of "The Art of XSD”, written by MVP Jacob Sebastian, will take the reader step-by–step all the way from the basics of XML Schema design all the way to advanced topics on SQL Server XML Schema Collections. Reviewer Hima Bindu Vejella gives it an 8/10 rating, and gives us an excellent distilled description of what the book has to offer. Read more...

Fabiano Amorim

Showplan Operator of the Week - Lazy Spool

Continuing to illuminate the depths of SQL Server's Query Optimizer, Fabiano shines a light on the sixth major Showplan Operator on his list: the Lazy Spool. What does the Lazy Spool do that's so special, how does the Query Optimizer use it, and why is it so Lazy? Fabiano explains all... Read more...

Jonathan Lewis

Oracle to SQL Server: Crossing the Great Divide, Part 2

A well-known Oracle expert records faithfully his struggles with the unfamiliar : SQL Server. He now sets himself the task of creating a table with a million rows of random data. As one might expect, it is the lack of familiarity with the workarounds and tricks of SQL Server that trips him up. His journey brings us fresh insights, and a glimpse at the alternative-universe of Oracle. Read more...

Fabiano Amorim

Operator of the Week - Spools, Eager Spool

For the fifth part of Fabiano's mission to describe the major Showplan Operators used by SQL Server's Query Optimiser, he introduces the spool operators and particularly the Eager Spool, explains blocking and non-blocking and then describes how the Halloween Problem is avoided. Read more...

Fabiano Amorim

Showplan Operator of the Week - BookMark/Key Lookup

Fabiano continues in his mission to describe the major Showplan Operators used by SQL Server's Query Optimiser. This week he meets a star, the Key Lookup, a stalwart performer, but most famous for its role in ill-performing queries where an index does not 'cover' the data required to execute the query. If you understand why, and in what circumstances, key lookups are slow, it helps greatly with optimising query performance. Read more...

Jonathan Lewis

Oracle to SQL Server: Crossing the Great Divide, Part 1

When a SQL expert moves from Oracle to SQL Server, he can spot obvious strengths and weaknesses in the product that are too familiar to be apparent to the SQL Server DBA. Jonathan Lewis is one such expert: In this article he records his train of thought whilst investigating the mechanics of the SQL Server database engine. The result makes interesting reading. Read more...

Fabiano Amorim

Showplan Operator of the Week - Compute Scalar

The third part of Fabiano's mission to describe the major Showplan Operators used by SQL Server's Query Optimiser continues with the 'Compute Scalar' operator. Fabiano shows how a tweak to SQL to avoid a 'Compute Scalar' step can improve its performance. Read more...

Fabiano Amorim

Showplan Operator of the Week - Concatenation

Fabiano continues in his mission to describe, one week at a time, all the major Showplan Operators used by SQL Server's Query Optimiser to build the Query Plan. This week he gets the Concatenation operator . Read more...

Fabiano Amorim

Showplan Operator of the week - Assert

As part of his mission to explain the Query Optimiser in practical terms, Fabiano attempts the feat of describing, one week at a time, all the major Showplan Operators used by SQL Server's Query Optimiser to build the Query Plan. He starts with Assert Read more...

Robert Sheldon

Managing Transaction Logs in SQL Server

The Transaction Log provides the means by which either the complete set of tasks of a database transaction are performed or none of them are. It ensures that , via rollback, only valid data is written out to the database, and it allows transactions to be played back to recreate the system state right before a failure. Robert Sheldon explains the various basic tasks involved in managing the transaction log. Read more...

Pinal Dave

Introduction to Change Data Capture (CDC) in SQL Server 2008

Change Data Capture records INSERTs, UPDATEs, and DELETEs applied to SQL Server tables, and makes a record available of what changed, where, and when, in simple relational 'change tables' rather than in an esoteric chopped salad of XML. These change tables contain columns that reflect the column structure of the source table you have chosen to track, along with the metadata needed to understand the changes that have been made. Pinal Dave explains all, with plenty of examples in a simple introduction. Read more...

Jacob Sebastian

An Introduction to SQL Server FileStream

Filestream allows us to store and manage unstructured datain SQL Server more easily. Initially, the accounts of FILESTREAM assumed prodigious powers of concentration and cognition, and we mortals all recoiled numbly. However, it became clear that we were missing out on some extraordinarily useful functionality, so we asked Jacob Sebastian to come up with a simple and clear-cut account of the FILESTREAM feature in SQL Server 2008. You'll agree he has managed the feat superbly. Read more...

Robert Sheldon

Using the FOR XML Clause to Return Query Results as XML

The FOR XML clause in SQL Server causes a lot of difficulty, mainly because it is rather poorly explained in Books-on-Line. We challenged Bob Sheldon to make it seem simple. Here is his sublime response. Read more...

Jacob Sebastian

Introduction to XML Schema

What is an XML Schema, and why is it important? How did XSD develop from its precursors, DTD and XDR? What is XML capable of in the recent versions of SQL Server? Jacob Sebastian gives a succinct answer in this extract from his new book. Read more...

Joe Celko

SQL and the Snare of Three-Valued Logic

The whole subject of the Three-Valued (also known as ternary, trivalent or 3VL) Logic of SQL tends to trip people up. This is hardly surprising in view of the fact that it involves an esoteric Polish mathematician and because it behaves differently in the DDL (Data Declaration Language) and the DML (Data Manipulation Language). In response to requests, Joe Celko comes to the rescue and makes it all seem simple. Read more...

Anith Sen

Facts and Fallacies about First Normal Form

When discussing the normalisation process, it is always the First Normal Form that causes the most grief and confusion. Anith Sen takes up the challenge to explain, in simple terms, exactly what the First Normal Form really is, and why it is so important for Database Design. Along the way, he dispels some of the myths that have grown up around 1NF. Read more...

Chris Massey

Free eBook: SQL Server Crib-Sheet Compendium

For everything you need to know, rather than want to know, about SQL Server Reporting Services, replication, backup, XML, performance, data warehousing and more.. Read more...

Robert Sheldon

Full-Text Indexing Workbench

Robert Sheldon continues his guide to Full-Text Indexing, by putting down his pen and reaching for SSMS for a practical workbench on Full-Text indexing. There is nothing like trying things out to make ideas click. Read more...

Robert Sheldon

Understanding Full-Text Indexing in SQL Server

Microsoft has quietly been improving full-text indexing in SQL Server. It is time to take a good look at what it offers. Who better to give us that look than Robert Sheldon, in the first of a series. Read more...

Brad McGehee

SQL Server 2008: Performance Data Collector

With Performance Data Collector in SQL Server 2008, you can now store performance data from a number of SQL Servers in one central location. This data is collected by a collection set on each server and stored in a shareable management data warehouse (MDW). Reports can be generated from this data using the built-in reports or generating your own with reporting Services. Brad McGehee explains more. Read more...

Robert Sheldon

SQL Server Index Basics

Given the fundamental importance of indexes in databases, it always comes as a surprise how often the proper design of indexes is neglected. It often turns out that the programmer understands detail, but not the broad picture of what indexes do. Bob Sheldon comes to the rescue with a simple guide that serves either to remind or educate us all! Read more...

Robert Sheldon

SQL Server Data Warehouse Cribsheet

It is time to shed light on Data Warehousing and to explain how SSAS, SSRS and Business Intelligence fit into the puzzle. Who better to explain it all then Robert Sheldon. Read more...

Susan Conway

GIS and SQL Server 2008: Making Maps with your Data

When Microsoft introduced GIS into SQL Server with SQL Server 2008, it opened up a whole range of new applications that were previously impossible to do with SQL Server. So what sort of things can you do with GIS Data? We asked an expert! Read more...

Brad McGehee

SQL Server 2008: The New Data Types

Brad continues his helicopter-level view of the most interesting new features of SQL Server 2008 with a look at the new data types, their use and their significance. Read more...

Joe Webb

Using Covering Indexes to Improve Query Performance

Designers of database systems will often assume that the use of a clustered index is always the best approach. However the nonclustered Covering index will usually provide the optimum performance of a query. Read more...

Robyn Page and Phil Factor

Database Design Workbench - Keys

Robyn Page and Phil Factor explore the innocent subject of Keys for their latest workbench. Everybody knows about keys. Oh yeah? Phil Factor ends up muting the immutable out of sheer devilry, and we learn how silly the British Secret Service were to tag James Bond with the code '007' Read more...

Brad McGehee

Management Studio Improvements in SQL Server 2008

Not everybody who had to use Management Studio when it first appeared in SQL Server 2005 liked it. The paint was still wet and there was still scaffolding around. To give Microsoft its' credit, it has succeeded in transforming it into a much more useful product, in its SQL Server 2008 reincarnation Read more...

Brad McGehee

How to Track Down Deadlocks Using SQL Server 2005 Profiler

It is irritating, sometimes alarming, for the user to be confronted by the 'deadlock message' when a deadlock happens. It can be a tiresome business to prevent them from occurring in applications. Fortunately, the profiler can be used to help DBAs identify how deadlocking problems happen, and indicate the best way of minimising the likelihood of their reappearance. Read more...

Hugh Bin-Haad

The Concept of Cardinal Reciprocity- A Primer

Too many authors in the field of relational theory have neglected the concept of Cardinal Reciprocity. This can cause a number of subtle problems with database design in terms of its derivability, redundancy, and consistency. . Increasingly, this little-understood aspect of relational theory, that emphasises the cardinality of the attributes of tuples in a relation and the reciprocity with isomorphic foreign key restraints, is becoming a hot forum topic. Read more...

Adam Machanic

Service Broker Advanced Basics Workbench

SQL Service Broker, an asynchronous queuing and messaging system for SQL Server 2005, is set to change the way we design and run distributed applications. Adam Machanic once more makes it all seem so easy in Part 2 of his epic series... Read more...

Adam Machanic

Service Broker Foundations Workbench

SQL Service Broker, an asynchronous queuing and messaging system for SQL Server 2005, is set to change the way we design and run distributed applications. Adam Machanic makes it all seem so easy... Read more...

Regular Columnists

Short Articles

A collection of shorter articles by some of our regular Simple-Talk columnists, this week featuring Simon Sabin, Greg Larsen on CLR vs. T-SQL and Eric Brown on Dynamic management Views. Read more...

Greg Larsen

Choosing between CLR and T-SQL stored procedures: a simple benchmark

In this short article, Greg Larsen performance benchmarks alternative CLR-based and T-SQL stored procedure solutions for retrieving operating system file information. He also assesses other factors to be considered when choosing the correct implementation for your system, such as ease of development and maintenance. Read more...

Robyn Page

SQL Server XML Cribsheet

If you're like me and find XML a bit of an acronym minefield, Robyn Page's Cribsheet will help sort out your XSLT from your XDM. Read more...

Robyn Page

Robyn Page's SQL Server Cursor Workbench

The topic of cursors is the ultimate "hot potato" in the world of SQL Server. Everyone has a view on when they should and mainly should not be used. By example and testing Robyn Page proves that, when handled with care, cursors are not necessarily a "bad thing". This article coined a phrase, 'Quirky Update', that has since established itself as the industry-term. We now feature a new revised version of the old classic, with help from Phil Factor. Read more...

Greg Larsen

Building my First SQL Server 2005 CLR

Greg Larsen provides a step-by-step tour of the hurdles he had to jump in building and deploying his first serious CLR stored procedure. Read more...

Robyn Page

Robyn Page's SQL Server Data Validation Workbench

Robyn Page provides essential techniques for ensuring the validity of the data being entered into your SQL Server tables. Read more...

Robyn Page

Robyn Page's SQL Server String Manipulation Workbench

String searching and manipulation in SQL Server can be error-prone and tedious...unless you're armed with the techniques described in Robyn's string manipulation workbench... Read more...

Pop Rivett

Pop Rivett's SQL Server FAQ

Pop Rivett dispenses pearls of SQL Server wisdom, this time tackling the setting of variables from dynamic SQL. Bah, humbug. Read more...

Robyn Page

Robyn Page's SQL Server DATE/TIME Workbench

To celebrate the seventh anniversary of Robyn Page's classic workbench, Phil brings it right up to date. What starts as a gentle introduction to the use of dates in SQL Server ends up with some unusual tricks in creating calendars and calculating Mardi Gras. Read more...

Hilary Cotter

SQL Server Full Text Search Language Features, Part 2

Extensive coverage of the query-time behaviour of SQL Server Full-text search, demonstrating how searches are expanded by the parser before hitting the full-text index. Read more...

Douglas Reilly

SQL Server and .NET training and career development Part 3

How do you keep your skills current? How will you prepare yourself for what you will be doing 5 years from now? In this article, part III of the series, I discuss books and the role they can play in keeping the developer up to date. Read more...

Hilary Cotter

SQL Server Full Text Search Language Features

SQL Full-text Search (SQL FTS) is an optional component of SQL Server 7 and later, which allows fast and efficient querying when you have large amounts of unstructured data. Read more...

Douglas Reilly

SQL Server and .NET Training and Career Development (part 2)

In Part I of this series, I discussed the role and value of conferences in the career development of SQL Server and .NET developers. In this article, I move on to discuss online technical forums, focusing on what to do before you post on a newsgroup or forum in order to derive maximum benefit from them, and avoid trying the patience and goodwill of the forum community. Read more...

Douglas Reilly

SQL Server and .NET Training and Career Development

A number of years ago, I wrote a blog entry entitled “Who is Responsible for your Career?“. It was perhaps the second most popular post I ever wrote (judging by reads and referrals), and it generated a large number of comments and other blog entries, both pro and con. Read more...

Phil Factor
Searching for Strings in SQL Server Databases

Sometimes, you just want to do a search in a SQL Server database as if you were using a search engine like Google.... Read more...

 View the blog

Most Viewed

Beginning SQL Server 2005 Reporting Services Part 1
 Steve Joubert begins an in-depth tour of SQL Server 2005 Reporting Services with a step-by-step guide... Read more...

Ten Common Database Design Mistakes
 If database design is done right, then the development, deployment and subsequent performance in... Read more...

SQL Server Index Basics
 Given the fundamental importance of indexes in databases, it always comes as a surprise how often the... Read more...

Reading and Writing Files in SQL Server using T-SQL
 SQL Server provides several "standard" techniques by which to read and write to files but, just... Read more...

Concatenating Row Values in Transact-SQL
 It is an interesting problem in Transact SQL, for which there are a number of solutions and... Read more...

Why Join

Over 400,000 Microsoft professionals subscribe to the Simple-Talk technical journal. Join today, it's fast, simple, free and secure.