Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

समवर्ती वातावरण में अधिकतम (आईडी) को संभालना

आप जो चाहते हैं उसे करने के दो तरीके यहां दिए गए हैं। तथ्य यह है कि आप EmpCode . पर अद्वितीय बाधा उल्लंघन के साथ समाप्त हो सकते हैं मैं आपको चिंता करने के लिए छोड़ दूँगा :)।

1. scope_identity() का इस्तेमाल करें अंतिम सम्मिलित आईडी प्राप्त करने के लिए और इसका उपयोग EmpCode . की गणना करने के लिए करें ।

तालिका परिभाषा:

create table Employees
(
  ID int identity primary key,
  Created datetime not null default getdate(),
  DistrictCode char(2) not null,
  EmpCode char(10) not null default left(newid(), 10) unique
)

कर्मचारियों के लिए एक पंक्ति जोड़ें। लेन-देन में यह सुनिश्चित करने के लिए किया जाना चाहिए कि आपको left(newid(), 10) से डिफ़ॉल्ट यादृच्छिक मान के साथ नहीं छोड़ा जाएगा EmpCode . में :

declare @ID int

insert into Employees (DistrictCode) values ('AB')

set @ID = scope_identity()

update Employees
set EmpCode = cast(year(Created) as char(4))+DistrictCode+right([email protected], 4)
where ID = @ID 

2. EmpCode बनाएं a गणना कॉलम

तालिका परिभाषा:

create table Employees
(
  ID int identity primary key,
  Created datetime not null default getdate(),
  DistrictCode char(2) not null,
  EmpCode as cast(year(Created) as char(4))+DistrictCode+right(10000+ID, 4) unique
)

कर्मचारियों में एक पंक्ति जोड़ें:

insert into Employees (DistrictCode) values ('AB')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. वर्चर मान 'कोई नहीं' को डेटा प्रकार int . में परिवर्तित करते समय रूपांतरण विफल रहा

  2. इसमें डालें... मर्ज करें... चुनें (एसक्यूएल सर्वर)

  3. क्या मैं किसी ऐसे SQL सर्वर से कनेक्ट कर सकता हूँ जो मेरे नेटवर्क से बाहर है?

  4. पूरी तरह से अलग डेटाबेस से परिणाम सेट के आधार पर एक डेटाबेस में रिकॉर्ड का चयन करने का सबसे कारगर तरीका

  5. क्या मैं एक कॉलम के लिए कई मानों के आधार पर 2 टेबल को इनर जॉइन कर सकता हूं?