Home > Link, Microsoft SQL Server, MSBI, Optimization, Query, Script, SQL Mentalist, SQL PraRup, SQL Query, SQL Server, Technology,, TSQL, Vishal Pawar > BI SQL # 267 : SQL Server DBA Scripts : Identity Columns: Are You Nearing The Limits?

BI SQL # 267 : SQL Server DBA Scripts : Identity Columns: Are You Nearing The Limits?

Hi Folks,

In this article we are going to cover Identity Columns: Are You Nearing The Limits?.

In this post we are going to discuss following points:

  • Problem Statement of SQL Script:
  • Description of SQL Script:
  • SQL Script Output Column
  • SQL Script Code
  • SQL Script Output Screenshot
  • User Level to execute

Problem Statement of SQL Script:

How to find all the identity column in a table and how much percent is left for Limit?

Description of SQL Script:

This script will gives all the identity column in a table and how much percent is left for Limit.

SQL Script Output Column

image

SQL Script Code

DECLARE @threshold DECIMAL(3, 2) = .85;

/* Create a temp table */
CREATE TABLE #identityStatus (
    database_name VARCHAR(128)
    ,table_name VARCHAR(128)
    ,column_name VARCHAR(128)
    ,data_type VARCHAR(128)
    ,last_value BIGINT
    ,max_value BIGINT
    );

/* Use an undocumented command to run a SQL statement
   in each database on a server */
EXECUTE sp_msforeachdb 
    '
    Use [?];
    Insert Into #identityStatus
    Select ''?'' As [database_name]
        , Object_Name(id.object_id, DB_ID(''?'')) As [table_name]
        , id.name As [column_name]
        , t.name As [data_type]
        , Cast(id.last_value As bigint) As [last_value]
        , Case 
            When t.name = ''tinyint''   Then 255 
            When t.name = ''smallint''  Then 32767 
            When t.name = ''int''       Then 2147483647 
            When t.name = ''bigint''    Then 9223372036854775807
          End As [max_value]
    From sys.identity_columns As id
    Join sys.types As t
        On id.system_type_id = t.system_type_id
    Where id.last_value Is Not Null'
    ;

/* Retrieve our results and format it all prettily */
SELECT database_name
    ,table_name
    ,column_name
    ,data_type
    ,last_value
    ,CASE 
        WHEN last_value < 0
            THEN 100
        ELSE (1 - Cast(last_value AS FLOAT(4)) / max_value
                ) * 100
        END AS [percentLeft]
    ,CASE 
        WHEN Cast(last_value AS FLOAT(4)) / max_value >= @threshold
            THEN 'warning: approaching max limit'
        ELSE 'okay'
        END AS [id_status]
FROM #identityStatus
ORDER BY percentLeft;

/* Clean up after ourselves */
DROP TABLE #identityStatus;

SQL Script Output Screenshot

image

User Level to execute

300

    Hope you will like the Identity Columns: Are You Nearing The Limits?.

    If you really like reading my blog and understood at least few thing then please don’t forget to subscribe my blog.

If you want daily link and analysis or interesting link go to following website which will give @ your inbox please subscribe our following link resource blog :

Link Resource Website

For More information related to BI World visit my Mentalist Blog

SQL Server Mentalist >> SQL Learning Blog

Business Intelligence Mentalist >> BI World

Infographic Mentalist >> Image worth explaining thousand Words

Microsoft Mentalist >> MVC,ASP.NET, WCF & LinQ

DBA Mentalist >>Advance SQL Server Blog

Microsoft BI Mentalist >> MS BI Development Update

Connect With me on

| FaceBook |Twitter | linkedIn| Google+ | WordPress | RSS |

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: