SQLServerCentral - www.sqlservercentral.com

A community of more than 1,600,000 database professionals and growing

Featured Contents

Featured Script

The Voice of the DBA

Vendor Value

This editorial was originally published on May 18, 2009. It is being re-run as Steve is on vacation.

Software is a very interesting business. Where else can you produce a product that has zero marginal costs for additional units? Where else can you force a "maintenance" charge on your product? What other product must continue to be improved upon by the manufacturer after it's sold?

There actually are other industries for all of these cases, but they're not numerous, and they differ from software. The business of building and selling software is fascinating, and I'm always learning more about it. I constantly see great questions in the forums at the Business of Software social network site. I'll also plug the Business of Software 2009 Conference; if you're a software person, consider attending this event. I went last year and found it very stimulating and educational, forcing me to think a lot about how that industry works.

I happen to work for a software vendor now, Red Gate software, and I used to work for another, JD Edwards. I wasn't a part of the development or sales in either company, but I did get to talk to people that were, and learned a bit the business. And so when I saw this open letter to Oracle,  it struck a bit of a chord.

I'm not sure how software maintenance evolved to where it is today, but I think requiring it on a regular basis is an antiquated way of doing business. Microsoft doesn't do it, though many third party vendors that work with Microsoft product do.  However I'm not sure that it's really a value proposition for most customers.

At least not if the software is written well. It's a piece of junk, maybe that maintenance is required.

I think that maintenance should be an optional part of the product, and that should fund support efforts, not a rolling cash cow to build the next version of your product. Sales fund that, or I think they should.

Steve Jones

Steve Jones from SQLServerCentral.com

Join the debate, and respond to today's editorial on the forums

The Voice of the DBA Podcasts

The podcast feeds are available at sqlservercentral.mevio.com. Comments are definitely appreciated and wanted, and you can get feeds from there.

You can also follow Steve Jones on Twitter

Overall RSS Feed: or now on iTunes!

Today's podcast features music by Everyday Jones. No relation, but I stumbled on to them and really like the music. Support this great duo at www.everydayjones.com.

I really appreciate and value feedback on the podcasts. Let us know what you like, don't like, or even send in ideas for the show. If you'd like to comment, post something here. The boss will be sure to read it.

SQL Data Compare

Compare and synchronize database contents

“I've been really missing a neat data comparison tool - SQL Data Compare Pro seems to be the answer to my prayers.” Jan Hansen, Database Architect. Download a free trial.


Save 45% on our top SQL Server database administration tools.

Together they make up the SQL DBA Bundle, which supports your core tasks and helps your day run smoothly. Download a free trial now.

SQL Toolbelt

16 essential SQL Server tools

In one installer, the award-winning SQL Toolbelt contains everything you need to work with SQL Server. "The SQL Toolbelt provides tools that database developers as well as DBAs should not live without." William Van Orden. Download a free trial.

Featured Contents


MCSA 70-462 Training Kit Preparation: Hyper-V Lab Environment Setup

Bruce Hendry from SQLServerCentral.com

If you are planning on taking the Microsoft Certification Exam for 70-462, this guide provides the step-by-step instructions to completely setup your Hyper-V lab environment used in the official training kit. More »


SQL Server Operations from Set Theory

Additional Articles from MSSQLTips.com

SQL Server provides the UNION, EXCEPT, and INTERSECT set operations. How do they work and how can they be used in SQL Server? Can you provide any examples? Check out this tip to learn more. More »


From the SQLServerCentral Blogs - Fill Factor, Why Do You Taunt Me? Part 3

Bill (DBAOnTheGo) from SQLServerCentral Blogs

Let's look at something a bit more in depth. Let me start by saying, "Please don't arbitrarily change any default... More »


sqlpass... More »

Question of the Day

Today's Question (by Gabe Tower):

What result appears when you attemp to convert (or cast) an empty string to a datetime?

select convert(datetime, '')

Think you know the answer? Click here, and find out if you are right.

We keep track of your score to give you bragging rights against your peers.
This question is worth 1 point in this category: DateTime.

We'd love to give you credit for your own question and answer.
To submit a QOTD, simply log in to the Contribution Center.


Training Kit (Exam 70-461): Querying Microsoft SQL Server 2012

Ace your preparation for Microsoft® Certification Exam 70-461 with this 2-in-1 Training Kit from Microsoft Press®. Work at your own pace through a series of lessons and practical exercises, and then assess your skills with practice tests on CD—featuring multiple, customizable testing options.

Maximize your performance on the exam by learning how to:

  • Create database objects
  • Work with data
  • Modify data
  • Troubleshoot and optimize queries

You also get an exam discount voucher—making this book an exceptional value and a great career investment.

Yesterday's Question of the Day

Yesterday's Question (by Steve Jones):

From which DMV in SQL Server 2012 would I query to get a list of the server roles?

Answer: sys.server_principals


You get a list of the logins and roles from sys.server_principals DMV. There is a type_desc column (as well as a type) that will let you know which principals are roles.

Ref: sys.server_principals - http://msdn.microsoft.com/en-us/library/ms188786.aspx

» Discuss this question and answer on the forums

Featured Script

Use HASHBYTES to identify changes

Jim Youmans from SQLServerCentral.com

If you need to check a row for changes you can use HASHBYTES to do so.  

Here is how to create a HASH value for the entire row.  You want to use SHA1 to make sure there are (virtually) no collisions.

For this case the hash column should be VARBINARY(20)

Make sure <primary key> is the key for that table. If there are multiple rows with that key, the hash will include them all.

The perfect use for this would be a nightly data load where you get the entire universe of data each night, maybe thousands of rows, but only a small percentage of the rows actually change.  This allows you to identify the deltas and just process them instead of having to process everything.

You could also use this to identify all row changes for a given table by comparing a saved hash value to the current hash value.  Just remember, the hash is static so if you need to update it you will have to create a process to do so.

More »

Database Pros Who Need Your Help

Here's a few of the new posts today on the forums. To see more, visit the forums.

SQL Server 2012 : SQL 2012 - General

SQL Small Business upgrade to BI or Enterprise - Good afternoon. I am trying to find a single source that can give me an overview of what it takes to...

SQL 2012 Standard Edition Trail version is available or not. Please help... - Hi All, I am looking for a trail version of SQL 2012 Standard Edition Trail version. I would like to first...

SQL Server 2012 : SQL Server 2012 - T-SQL

fragmentation question - i have a quick question about internal fragmentation the book explanation is that DML statement cause internal fragmentation, i can understand...

RANGE OF DATES - Goodnight Would like to separate the dates for months. For example I have a table that shows me the following: Code Name...

Could this be done better? - Howdy, Late last night I got a request for some data. The format was the biggest challenge, since the definitions of...

Coin combinations - There's an often mentioned "problem" which is sometimes used to help in teaching kids to understand combinations, but more often...

SQL Server 2008 : SQL Server 2008 - General

UniqueIdentifier Type - Hi I have a table with a column "id" and it's type is uniqueidentifier and this field is clustered Index,the fragmentation...

MSDB-Job failed - HI, I unfortunately i deleted data into these table in my msdb, sysmail_servertype sysmail_server Then i trying to create new profile and account,...

update query - Add a - after everthing in a specific field. Sql server 2008 - I am trying to write the correct syntax for adding a dash to everything in a specific field. The query I...

backupset question - Is there a way to differentiate between a backup and a restore in the backupset? Erin

Create table, how to set PK as MMYYYY? - Hi, all I need to create table with time history data for each month, now I have PK below, but there is...

Still cannot figure passing a variable to procedure - Hi Professionals. I have been stuck on this for days and I cannot figure it out. I am passing in the...

Which way is better in SQL Paging (With or TempTableVariable) & Why ?? - Which way is better in SQL Paging and Why ?? [b]With[/b] [code="sql"] WITH MyCte AS ( SELECT EmployeeID, EmployeeName, Age, Position, Address, PhoneNumber ,ROW_NUMBER() OVER...

Parsing EDI 834 flat file with SSIS, I need to be able to use multiple delimiters - Hello All, I am working at a small health plan and I am trying to parse a 834 flat file data...

8KB page size - Hi, I am creating a table of row size char(1000) as below. create table Optimised(id char(1000)) i am insert values 1,2,3,4..... insert into Optimised...

SQL Server 2008 : T-SQL (SS2K8)

Updating grandparent table inside a trigger - I know I should do all the create table statements etc, but I'll chop it down to the bare essentials: [code="sql"]CREATE...

Count for each account no -parent and childsql - Hi Guys I have a data where there are parent and child product. Each parent has got a unique code(P1) and...

SQL Server 2008 : SQL Server Newbies

How do i update this? - I have two tables. To make it simple, the table dutyrostershift has two relewant fields field "ID" and MTID_ID The table mTidClockInClockOut...

Failed install after failed install - Hi Very much a newbie, with little experience with SQL. Had Visual Studio in here, and apparently also SQL 2005, 2008....

I want to be a DB Admin - I'm a graduating student and I want to be a DB admin in the future. Where should I start? I...

Migrate a SQL 2000 database to a different server - I need to migrate an old SQL 2000 database, setting on a windows 2000 server, to a SQL 2008 setting...

SQL Server 2008 : Security (SS2K8)

I'm baffled - Msg 15022 The specified user name is already aliased - I'm unable to create user for database. [code="sql"] USE [AfregnDB] GO CREATE USER [SW] FOR LOGIN [SW] GO [/code] I get this error: [quote]Msg 15022, Level 16,...

Need to use Kerberos, but it still is using NTLM - I am having trouble with my SQL server not using Kerberos. I read Brian Kelly's article on sqlservercentral.com, but I...

SQL Server 2008 : SQL Server 2008 Administration

How to split filegroup files to more than physical storage drive - Are I can spread my database filegroup files to more than storage drive , not on the same storage drive , and...

Restore Syntax Fails - post removed

Cannot enable Database Mail XP - I'm trying to turn on Database Mail. I set the flag in db_config, did the reconfigure, and for good measure stop/started...

Automate Pulling off agent Jobs to File - Hello I just started a new position and I have been asked to go through all our SQL Servers and...

SQL Server 2008 : SQL Server 2008 Performance Tuning

Index Tuning never finishes - I have been given several large databases to tune. They have never had the statistics updated and I cannot tell...

Recommended websites/book about PT - Hello! Do you have any good websites or books to read about best practice or advice for performance tuning?

Execution plan uses CONVERT_IMPLICLIT , But i have mention CAST in where clause - Hi Experts, This is kind of wired behaviour on part of SQL Server. 1. I have a query whose execution plan...

How viewing the Extended Events file in a GUI-style - SQL Server 2008 R2 - Hi, I'm using the Extended Events to monitor query perfomance in a SQL Server 2008 R2 instance, producing a file as...

Another Max Memory Question - We're planning to install a named instance of SQL 2008 R2 on a server that already has a default instance....

Cloud Computing : General Cloud Computing Questions

Best design option for supporting a new large sql database - Hi I'm pretty new to how the cloud business all works and wondered if someone could offer some advice on a...

SQL Server 2005 : Administering

SQL 2012 Standard Edition Trail version available? - Hi All, I am looking for a trail version of SQL 2012 Standard Edition Trail version. I would like to first...

Reporting Services : Reporting Services

Wrong Width in IE in Report Server - Goal: To make the width of the repot to be similiar for Internet Explorer and Firefox in the website in report...

Retrieve a Customized Report to many Users - Goal: Every user, who has a AD account shall retrieve a customized and personal report, that is filtrerad data of their...

Data Warehousing : Integration Services

SqlXMLBulkLoad error - I am trying to load a large xml file using sqlxmlbulkload in SSIS script task. It started loading for a...

Task gets wrong value from package variable - Hello all, I have a fairly simple SSIS package that does three different database tasks, loading data from a CSV file,...

SQLServerCentral.com : Anything that is NOT about SQL!

Today's Random Word! - HI When you woke up today, or logged-onto Opera Forums, you may have had a dream, a thought, a scene...

This email has been sent to {user_email}. To be removed from this list, please click here.
If you have any problems leaving the list, please contact the webmaster@sqlservercentral.com.
This newsletter was sent to you because you signed up at SQLServerCentral.com.
Feel free to forward this to any colleagues that you think might be interested.
If you have received this email from a colleague, you can register to receive it here.
This transmission is ©2013 Red Gate Software Ltd, Newnham House, Cambridge Business Park, Cambridge, CB4 0WZ, United Kingdom. All rights reserved.
Contact: webmaster@sqlservercentral.com