- Licensing issue with the Lite Edition. Our database comparison tools are currently free for SQL Server Express however, some users of the version 4 of the xSQL Comparison Bundle may have received the message "The Lite Edition does not support the databases you are trying to compare" even though the databases being compared were SQL Server Express databases.
- Scripting issue with identity columns based on data types that support precision pr length such as numeric.
Monday, August 15, 2011
xSQL Comparison Bundle new build available
Just published a new build of xSQL Comparison Bundle that fixes the following:
Friday, August 12, 2011
SQL convert vertical list to horizontal
Let's say you have a table that looks something like this:
CREATE TABLE [Source_Vertical](
[ID] [int] IDENTITY(1,1) NOT NULL,
[GroupID] [int] NOT NULL,
[Col1_Group] [varchar](50) NULL,
[Col2_Group] [varchar](50) NULL,
[Col1_Individual] [varchar](50) NULL,
[Col2_Individual] [varchar](50) NULL)
You don't know how many rows there are for each GroupID and your job is to generate a list that contains all values associated with a given GroupID in a single row. Here is a simple way to do it:
First: create a target table that looks something like this:
CREATE TABLE [Target_Horizontal](
[GroupID] [int] NOT NULL,
[GroupValues] [varchar](max) NULL)
Next copy, adjust based on your needs and execute the following simple script (note I used a vertical line as a value separator - you can use whatever you need, just make sure the character you choose does not exist inside the actual values of the columns):
DECLARE @GroupID int
DECLARE @GroupID_Current int
DECLARE @Col1_Group varchar(50)
DECLARE @Col2_Group varchar(50)
DECLARE @Col1_Individual varchar(50)
DECLARE @Col2_Individual varchar(50)
DECLARE list_cursor CURSOR
FOR SELECT * FROM dbo.Source_Vertical ORDER BY GroupID
OPEN list_cursor
FETCH NEXT FROM list_cursor INTO
@GroupID,
@Col1_Group,
@Col2_Group,
@Col1_Individual,
@Col2_Individual
SET @GroupID_Current = ''
WHILE @@FETCH_STATUS = 0
BEGIN
IF @GroupID_Current <> @GroupID
BEGIN
INSERT INTO Target_Horizontal (Id, GroupValues) VALUES(@GroupID, @Col1_Group + '|' + @Col2_Group + '|' + @Col1_Individual + '|' + @Col2_Individual)
SET @GroupID_Current = @GroupID
END
ELSE
BEGIN
UPDATE Target_Horizontal SET GroupValues = GroupValues + '|' + @Col1_Individual + '|' + @Col2_Individual WHERE GroupID = @GroupID
END
FETCH NEXT FROM list_cursor INTO
@GroupID,
@Col1_Group,
@Col2_Group,
@Col1_Individual,
@Col2_Individual
END
CLOSE list_cursor;
DEALLOCATE list_cursor;
Finally you can take the results from the target table and dump them on Excel or wherever you need to. Hope this helps someone!
CREATE TABLE [Source_Vertical](
[ID] [int] IDENTITY(1,1) NOT NULL,
[GroupID] [int] NOT NULL,
[Col1_Group] [varchar](50) NULL,
[Col2_Group] [varchar](50) NULL,
[Col1_Individual] [varchar](50) NULL,
[Col2_Individual] [varchar](50) NULL)
You don't know how many rows there are for each GroupID and your job is to generate a list that contains all values associated with a given GroupID in a single row. Here is a simple way to do it:
First: create a target table that looks something like this:
CREATE TABLE [Target_Horizontal](
[GroupID] [int] NOT NULL,
[GroupValues] [varchar](max) NULL)
Next copy, adjust based on your needs and execute the following simple script (note I used a vertical line as a value separator - you can use whatever you need, just make sure the character you choose does not exist inside the actual values of the columns):
DECLARE @GroupID int
DECLARE @GroupID_Current int
DECLARE @Col1_Group varchar(50)
DECLARE @Col2_Group varchar(50)
DECLARE @Col1_Individual varchar(50)
DECLARE @Col2_Individual varchar(50)
DECLARE list_cursor CURSOR
FOR SELECT * FROM dbo.Source_Vertical ORDER BY GroupID
OPEN list_cursor
FETCH NEXT FROM list_cursor INTO
@GroupID,
@Col1_Group,
@Col2_Group,
@Col1_Individual,
@Col2_Individual
SET @GroupID_Current = ''
WHILE @@FETCH_STATUS = 0
BEGIN
IF @GroupID_Current <> @GroupID
BEGIN
INSERT INTO Target_Horizontal (Id, GroupValues) VALUES(@GroupID, @Col1_Group + '|' + @Col2_Group + '|' + @Col1_Individual + '|' + @Col2_Individual)
SET @GroupID_Current = @GroupID
END
ELSE
BEGIN
UPDATE Target_Horizontal SET GroupValues = GroupValues + '|' + @Col1_Individual + '|' + @Col2_Individual WHERE GroupID = @GroupID
END
FETCH NEXT FROM list_cursor INTO
@GroupID,
@Col1_Group,
@Col2_Group,
@Col1_Individual,
@Col2_Individual
END
CLOSE list_cursor;
DEALLOCATE list_cursor;
Finally you can take the results from the target table and dump them on Excel or wherever you need to. Hope this helps someone!
No one can beat our data compare tool, no one!
Yes, this may sound a bit cocky but we are tired of being modest and polite. We don't have an army of salesman to knock on your doors and we don't own and manipulate every user group there is but we focus on making our products the best there is and making them available to you at the lowest possible price including free. So, let's state it loud and clear – no one can beat our data compare tool, no one.
- Performance: throw in a large database and most of the competing tools will not be able to handle it at all or will take forever and a day to complete the job. Try it and see how xSQL Data Compare will knock the socks off all the alternatives.
- Usability: everything you need, nothing you don’t, all where it should be, one click compare – nothing approaches the efficiency of this interface.
- Value:
- Free for SQL Server Express – can anyone beat this?
- Free for other editions of SQL Server when the databases being compared have a limited number of objects – anyone out there can match this?
- Site license option, unlimited number of installations in your organization for a very modest price – can anyone come close to this?
Dare to compare for yourself, download our data compare and evaluate it against any and all competing tools in the market. Let us know what you think.
Thursday, August 11, 2011
LinkedIn – great concept but practically useless!
The other day I had a need to get introduced to an individual, let’s call her Jane Doe, who worked for company X. I searched for her on LinkedIn and was delighted to find that she was “in” my network – only one step away, directly connected to my friend “Jon”. So, I ask Jon to introduce me to Jane explaining why I wanted to talk to Jane. Jon’s response was the shocker – he said “I am really sorry but I barely know Jane (translation: I don’t really know Jane). I will send her an email but I am not sure if she will respond or not!” But, that defeats the very purpose of this media I said to myself!
Well. after this I decided to examine my contact list and to my dismay I realized that gradually a good number of individuals that I can’t remember ever meeting has made it into my list of connections! Who are those people? Why are they on my list? What does it really mean to me to have those people in my list and what does it mean to them to be on my list? I certainly can’t vouch for them nor can I rely on them for anything since I don’t know them BUT the very fact that they are on my list of direct connections constitutes some sort of an endorsement. What a mess! What is now the real value of this thing to the end users other than to sales professionals who may use it as a cheap way to compile prospect lists or to marketing professionals who can run highly targeted ads? What motivates someone who has no prospecting interest to waste much valuable time there? I can't find a good answer!
I am not trying to bash LinkedIn here – the concept was great and the implementation near perfect but we the people seem to have ruined a good thing as we often do.
Well. after this I decided to examine my contact list and to my dismay I realized that gradually a good number of individuals that I can’t remember ever meeting has made it into my list of connections! Who are those people? Why are they on my list? What does it really mean to me to have those people in my list and what does it mean to them to be on my list? I certainly can’t vouch for them nor can I rely on them for anything since I don’t know them BUT the very fact that they are on my list of direct connections constitutes some sort of an endorsement. What a mess! What is now the real value of this thing to the end users other than to sales professionals who may use it as a cheap way to compile prospect lists or to marketing professionals who can run highly targeted ads? What motivates someone who has no prospecting interest to waste much valuable time there? I can't find a good answer!
I am not trying to bash LinkedIn here – the concept was great and the implementation near perfect but we the people seem to have ruined a good thing as we often do.
Wednesday, August 10, 2011
Tech Evangelists – exclusive territories, great potential
If you "live" online and have solid knowledge of databases, especially SQL Server, this may be the perfect gig for you. As a technology evangelist you will promote the use of our database tools through blogging, reviews, demonstrations, presentations etc. You will be compensated for your effort based on your performance. Here are the guidelines:
- if you are selected to be the exclusive tech evangelist for a given territory we will show you the current status of affairs in that territory and establish a baseline based on historical data;
- you will receive $0.1 for every unique visitor to our site, originating from your territory, over the established baseline.
- you will receive $0.5 for every unique product download (your territory only) over the established baseline.
- you will receive 15% commission on all sales on your territory regardless of how the customer found us.
Monday, August 8, 2011
$250 for the most creative use of xSQL Data Compare
Have you used xSQL Data Compare to solve a challenging problem? Send us a short essay describing your scenario and how you made use of xSQL Data Compare and you may win $250.
How will this work?
Please submit your entries via email to info@xsql.com
How will this work?
- All entries submitted from now until November 30, 2011 will be evaluated by an internal commission for:
- Creativity
- Challenge level
- Presentation
- The commission will select 3 winners and the winning entries will be announced no later than December 16, 2011. The prizes are:
- First place winner -> $250
- Second place -> $100
- Third place -> $50
Please submit your entries via email to info@xsql.com
Wednesday, July 6, 2011
Major release: SQL Server Data Compare 4
Coming 7 years after the release of the very first version of xSQL Data Compare, the new xSQL Data Compare for SQL Server version 4 reflects a wealth of accumulated experience, countless comments and suggestions we have received from you over those years, and the latest trends in software architecting and design.
Quick links:
Important notes:
Stay connected: - follow us on Twitter http://twitter.com/xsqlsoftware, and like us on Facebook http://www.facebook.com/xsqlsoftware. Also, next time you stop by our site don't forget to click on those "like" buttons on our product pages. As always, your comments, suggestions, and your critique are greatly appreciated!
Quick links:
Important notes:
- Have an active upgrade subscription? You do not need to contact us. In the next 3-5 days you will receive your new license.
- Have a licensed version installed already? Please note that the new version installs on top of the existing version but the license you have will not work with the new version.
- Single edition: when you visit our site you will notice that there are no more standard and professional editions available. There is only one edition that includes everything.
Stay connected: - follow us on Twitter http://twitter.com/xsqlsoftware, and like us on Facebook http://www.facebook.com/xsqlsoftware. Also, next time you stop by our site don't forget to click on those "like" buttons on our product pages. As always, your comments, suggestions, and your critique are greatly appreciated!
Subscribe to:
Posts (Atom)