Skip to main content

SQL auto generate last column id without auto increment

If we want to get a table autogenerate column id, without auto increment column. we can do it easily.
we can also made it globally for all table. We can create a table name paramaterize store procedure that
will give us table last column ID without using auto increment column.

 CREATE PROCEDURE [dbo].[spSET_GetDB_TablePKID]  
      @tableName [varchar](100),  
      @locationId [int]  
 AS  
 BEGIN  
 declare @newID varchar(20)  
 declare @dbID varchar(20)  
 declare @generateID bigint  
 declare @ReturnValue varchar(100)  
  if exists(select * from DB_TablePKID where LocationID=@locationId and TableName=@tableName)  
   begin  
   --table name exists  
   set @ReturnValue= (select MaxID+1 from DB_TablePKID where LocationID=@locationId and TableName=@tableName)  
   end  
  else --table name is not exists.  
   begin  
   -- generate new first ID for the supplied table  
   select @dbID= DBid from DB where DBLocationID=@locationId  
   set @newID=@dbID+'00000000000001'  
   set @generateID=convert(bigint,@newID)  
   set @ReturnValue=@generateID  
   end   
   select @ReturnValue  
 end  

declar the store procedure in C#

 public long GetTablekeyID(string tableName, int locationId)  
     {  
       long id = 0;  
       // id = _db.spSET_GetDB_TablePKID(tableName, locationId);  
       System.Data.Objects.ObjectResult<string> sid = this.DataContext.spSET_GetDB_TablePKID(tableName, locationId);  
       foreach (string aa in sid)  
       {  
         id = long.Parse(aa.ToString());  
       }  
       return id;  
     }  

Now call from anywhere with your any table name. it will return last id of your table. here locationID is optional.

Comments

Popular posts from this blog

C# run powershell script as administrator

Recently I was fetching a problem that I need to run a PowerShell script that will change TFS user Display name and SID. I was trying to run that script from C# that was not working due to TFS security update and TLS certificate. Using this code block I resolve the Issue. var newProcessInfo = new System.Diagnostics.ProcessStartInfo(); newProcessInfo.FileName = @"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe"; newProcessInfo.Verb = "runas"; // Define Run as administrator newProcessInfo.Arguments = script; //Define your powershell script newProcessInfo.UseShellExecute = false; newProcessInfo.RedirectStandardOutput = true; // This will enable to read Powershell run output newProcessInfo.RedirectStandardError = true; Process proces = System.Diagnostics.Process.Start(newProcessInfo); proces.WaitForExit(); // I want to read the output string from powershell window StringBuilder output = new StringBuilder(); output.Append("Started"); while (!proces.St

ASP.NET MVC razor SAP Crystal report

Crete a new project: Add a aspx Master Page Create a new folder Reports and 2 sub folder crystal & crystalviewer Now add a web form page in crystalviewer  folder. Add the master page namespace in your web form page. MasterPageFile ="~/Views/Shared/ReportSite.Master" Replace your web form by this code < asp : Content ID ="Content1" ContentPlaceHolderID ="ContentPlaceHolder1" runat ="server">      </ asp : Content > Now go to design mode of your web form drag & drop the crystal report viewer in your web form. After that your page will be look look like this. Replace the code: < CR : CrystalReportViewer ID ="EmployeeList" runat ="server"   HasCrystalLogo ="False"     AutoDataBind ="True"   Height ="50px"   EnableParameterPrompt ="false" EnableDatabaseLogonPrompt

mvc razor textboxfor change event change another textboxfor value

Based on value of Weight, Rate , CNF & AWB it will change the value of Freight , TTLCNF anfd TTLFright . Freight= Weight*Rate; TTLCNF  = Weight*CNF; TTLFright=  Freight+ TTLCNF  + AWB; @Html.TextBoxFor(model => model.Weight, new { onChange="return GetWight(this);"}) @Html.TextBoxFor(model => model.Rate, new { onChange="return GetWight(this);"})/Kg @Html.TextBoxFor(model => model.Freight, new {disabled = "disabled" , @readonly = "readonly" ,onChange="return GetTTLFright(this);"}) @Html.TextBoxFor(model => model.CNFPK, new { onChange="return GetCNFPK(this);"}) @Html.TextBoxFor(model => model.TTLCNF, new {disabled = "disabled" , @readonly = "readonly",onChange="return GetTTLFright(this);" }) @Html.TextBoxFor(model => model.AWB, new { onChange="return GetTTLFright(this);"}) and script <script> function GetW