Wednesday 31 January 2018

Return Newly Inserted Row In Sql Server

CREATE TABLE #TT
(
    ID uniqueidentifier NOT NULL
        DEFAULT newID(),
    name varchar(20),
    AreaCode INT
)

INSERT INTO #TT
(
    Name,
    AreaCode
)
OUTPUT INSERTED.ID,
       INSERTED.Name,
       INSERTED.AreaCode
SELECT 'SS',
       1
UNION ALL
SELECT 'SS1',
       2

DROP TABLE #TT

Recompile All Table, Stored Procedures and Function In SQL Server

CREATE PROCEDURE [dbo].[spEXECsp_RECOMPILE]
AS
BEGIN
    DECLARE @TableName varchar(128)
    DECLARE @OwnerName varchar(128)
    DECLARE @CMD1 varchar(8000)
    DECLARE @TableListLoop int
    DECLARE @TableListTable table
    (
        UIDTableList int IDENTITY(1, 1),
        OwnerName varchar(128),
        TableName varchar(128)
    )

    INSERT INTO @TableListTable
    (
        OwnerName,
        TableName
    )
    SELECT u.[Name],
           o.[Name]
    FROM sys.objects o
        INNER JOIN sys.schemas u
            ON o.schema_id = u.schema_id
    WHERE o.type IN (   'U', -- table
                        'P', -- stored procedures
                        'FN' -- scalar functions
                    )
    ORDER BY u.[Name],
             o.[Name]

    SELECT @TableListLoop = MAX(UIDTableList)
    FROM @TableListTable

    WHILE @TableListLoop > 0
    BEGIN
        SELECT @TableName = TableName,
               @OwnerName = OwnerName
        FROM @TableListTable
        WHERE UIDTableList = @TableListLoop

        SELECT @CMD1 = 'EXEC sp_recompile ' + '[' + @OwnerName + '.' + @TableName + ']' + char(13)

        --PRINT @CMD1
        EXECUTE (@CMD1)

        SELECT @TableListLoop = @TableListLoop - 1
    END

    SELECT *
    FROM @TableListTable

    SET NOCOUNT OFF

END
------------------------------------------------------
--To run used
EXECUTE [dbo].spEXECsp_RECOMPILE

Thursday 25 January 2018

Custom serial number key generator in C# .NET

Create one class named RandomSNKGenerator

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace AppCode
{

    public enum SNKeyLength
    {
        SN16 = 16, SN20 = 20, SN24 = 24, SN28 = 28, SN32 = 32
    }
   /// <summary>
   /// Supports Only 12 Digit
   /// </summary>
    public enum SNKeyNumLength
    {
        SN4 = 4, SN8 = 8, SN12 = 12
    }
    public static class RandomSNKGenerator
    {
        private static string AppendSpecifiedStr(int length, string str, char[] newKey)
        {
            string
            newKeyStr = "";
            int k = 0;
            for (int i = 0; i < length; i++)
            {
                for(k = i; k < 4 + i; k++)
                {
                    newKeyStr += newKey[k];
                }
                if (k == length)
                {
                    break;
                }
                else
                {
                    i = (k) - 1;
                    newKeyStr += str;
                }
            }
            return newKeyStr;
        }

        public static string GetSerialKeyAlphaNumaric(SNKeyLength keyLength)
        {
            Guid newguid = Guid.NewGuid();
            string randomStr = newguid.ToString("N");
            string tracStr = randomStr.Substring(0,(int)keyLength);
            tracStr = tracStr.ToUpper();
            char[] newKey = tracStr.ToCharArray();
            string newSerialNumber = "";
            switch (keyLength)
            {
                case SNKeyLength.SN16:newSerialNumber = AppendSpecifiedStr(16, "-", newKey);
                    break;
                case SNKeyLength.SN20: newSerialNumber = AppendSpecifiedStr(20, "-", newKey);
                    break;
                case SNKeyLength.SN24: newSerialNumber = AppendSpecifiedStr(24, "-", newKey);
                    break;
                case SNKeyLength.SN28: newSerialNumber = AppendSpecifiedStr(28, "-", newKey);
                    break;
                case SNKeyLength.SN32: newSerialNumber = AppendSpecifiedStr(32, "-", newKey);
                    break;
            }

            return newSerialNumber;
        }

        public static string GetSerialKeyNumaric(SNKeyNumLength keyLength)
        {
            Random rn = new Random();
            double sd = Math.Round(rn.NextDouble() * Math.Pow(10, (int)keyLength) + 4);
            return sd.ToString().Substring(0, (int)keyLength);
        }
    }
}

------------------------------------------------------------
string serialNumber = RandomSNKGenerator.GetSerialKeyAlphaNumaric(SNKeyLength.SN16);

or if you want to generate random number only :

string serialNumberNumberOnly = RandomSNKGenerator.GetSerialKeyNumaric(SNKeyNumLength.SN12);
  string serialNumber = AppCode.RandomSNKGenerator.GetSerialKeyAlphaNumaric(SNKeyLength.SN20);

Tuesday 16 January 2018

Add a datarow in datatable at specified index

DataTable existingDataTable = GetMeDataFromSomeWhere();
//Add a new row to table
DataRow newRow = existingDataTable.NewRow();

newRow["ID"] = 999;
newRow["SomeColumn"] = "Manas Bhardwaj";

existingDataTable.Rows.Add(newRow);

//OR If nedd row add in a specific row 

existingDataTable.Rows.InsertAt(dr, 0);

Get all non-clustered indexes

DECLARE cIX CURSOR FOR     SELECT OBJECT_NAME(SI.Object_ID), SI.Object_ID, SI.Name, SI.Index_ID         FROM Sys.Indexes SI             ...