MERGE your knowledge from EXPERTS – “Project BOTTICELLI”

Hi guys,

I am just about to write an introduction of “Project Botticelli” for you; but they gave their introduction in very nice and precise manner so I decided to extract that and put it here for your quick reference.

(Excerpt from

Project Botticelli Ltd is a small company offering online training by business intelligence experts and consulting services focused on advanced analytics, with a focus on data mining, predictive and statistical analysis.

I have seen couple of their videos and I am impressed with explanation & demonstrations. Please check out their contents on their website ( Currently there are many FREE previews/videos available. Also check out their membership plans (

You can get some finer information on following five topics:

  1. Data Mining
  2. DAX
  3. Excel BI
  4. MDX
  5. SQL BI

You know what to do next.

Thanks, Khilit

4.7 (94.44%) 18 votes

Recover Backed-up query files in SQL Server Management Studio

Hi guys,

I just want to share quickly very handy tip regarding your SQL query sessions. When you open SQL queries in SSMS, you generally go on and work in newly opened pane/window but sometimes dont save that work.

SSMS by default saves them in the event of pre-mature closure or crash of SSMS or PC restart etc. You can find your SQL queries from following lcoation.

C:\Users\<UserName>\Documents\SQL Server Management Studio\Backup Files\Solution1

FYI, I have found my queries here:


P.S. I am using Windows Server 2008 Operating System. This path could vary based on the Operating System. You can figure it out for sure 🙂

I hope you find this interesting and helpful.

Thanks, Khilit

5 (100%) 1 vote

Retrieving id of inserted record: What to use @@IDENTITY or SCOPE_IDENTITY() or OUTPUT

Hi guys,
This seems very basic information but need to know properly.

I need to find out or have the id of the records which I inserted in table.

This requirement seems very simple but there could be various cases where you would not get the correct id just by using @@IDENTITY function.

Think of the case where you are inserting a record in table A and there is a trigger which fires as soon as there is a insert in table A which insert a record in table B. so in such case @@IDENTITY wont give you the correct id/pointer of inserted record.

So to deal with this issue you can use SCOPE_IDENTITY(). You will always get the last value you have inserted in table. However, it is noticed that sometimes in some scenarios SCOPE_IDENTITY() does not promise the correctness of results. May be due to parallelism or multiple inserts or bulk inserts in table(s). E.g. when you do … Insert Into Select <columns> from Table

Well, Microsoft recommends that “You do not use either of these functions in your queries when parallel plans are involved as they are not always reliable. Instead use the OUTPUT clause of INSERT statement to retrieve the identity value“.

Check out MS articles:;en-US;2019779

I hope this will help you somewhere.
Thanks, Khilit

5 (100%) 1 vote

The Story of Precision, Scale, and Length in SQL Server

Hi guys,

Did you ever faced issues with BIG mathematical figures – related to either overflow or any  other arithmetic errors. This may be applicable to SQL arithmetic operations or arithmetic  operations you do with SQL table in SSIS etc.

Well, check 1 more time, if you have any issues in your database design related to column  data type which stores the BIG numbers.

I ran into this issue couple of times, and reason behind this issue was same all the time. So  decided to do a quick post. And that reason is “Improper or insufficient precision, scale and length defined for storing Decimals and Numeric values in table“.

I wanted to describe this with an example but there is already a very nice explanation by MSDN  on this topic. Check out:

You will notice in this article that, how any arithmetic operation will affect size and space  allocation of the resultant value during mathematical operation. You should use following shown table for defining and designing tables in such a way that can  handle BIG mathematical figures during operations.

From MSDN, for your quick view:


Result precision

Result scale *

e1 + e2 max(s1, s2) + max(p1-s1, p2-s2) + 1 max(s1, s2)
e1 – e2 max(s1, s2) + max(p1-s1, p2-s2) + 1 max(s1, s2)
e1 * e2 p1 + p2 + 1 s1 + s2
e1 / e2 p1 – s1 + s2 + max(6, s1 + p2 + 1) max(6, s1 + p2 + 1)
e1 { UNION | EXCEPT | INTERSECT } e2 max(s1, s2) + max(p1-s1, p2-s2) max(s1, s2)
e1 % e2 min(p1-s1, p2 -s2) + max( s1,s2 ) max(s1, s2)

* The result precision and scale have an absolute maximum of 38. When a result precision is greater than 38, the corresponding scale is reduced to prevent the integral part of a result from being truncated.

Important Note: Don’t forget to check for your SQL Server Version.

I hope you will find this informative.
Thanks, Khilit

5 (100%) 5 votes

Tracking Down Ghost Characters: WHERE Clause Does Not Work Properly In T-SQL Query

Hi guys,
I would like to share an experience with you when I was working on 1 SSIS related issue.

Scenario was:
I have to exclude some records from Table A by matching some keys of Table B.

 Table A

Year Month CustomerCode <Extra Columns>
2012 JAN CX1000  
2012 JAN CX2000  
2012 JAN CD3000  


 Table B

Year Month RecCustomerCode <Extra Columns>
2012 JAN CX1000  
2012 JAN CX7000  
2012 JAN CD8000  


 What is expected was – Table A’s following records:

Year Month CustomerCode <Extra Columns>
2012 JAN CX2000  
2012 JAN CD3000  

  Continue reading ‘Tracking Down Ghost Characters: WHERE Clause Does Not Work Properly In T-SQL Query’ »

5 (100%) 2 votes

MSSQL: Find total records of each Table in given Database

hi guys,
i wanted to do a quick post on how you can find total number of records in each table of the database.

here is the script you can use:

USE <Your Database Name>



Note: Customize this query according to your needs 🙂

Thanks, Khilit

5 (100%) 9 votes