· 8 years ago · Apr 12, 2018, 04:04 PM
1CREATE TABLE dbo.Customer
2(
3 RowId bigint IDENTITY(1,1) NOT NULL,
4 CustomerId guid NOT NULL,
5 Name varchar(255) NOT NULL,
6 CONSTRAINT PK_RowId PRIMARY KEY CLUSTERED([RowId] ASC)
7)
8create unique nonclustered index [UN_CustomerId] ON [dbo].[Customer] ([CustomerId] ASC)
9
10IF NOT EXISTS
11(
12 SELECT *
13 FROM dbo.Customer WITH (UPDLOCK, SERIALIZABLE)
14 WHERE CustomerID = @CustomerId
15)
16BEGIN
17 INSERT INTO dbo.Customer(CustomerId, Name) VALUES (@CustomerId, @Name)
18 SELECT @CustomerId
19END
20ELSE
21BEGIN
22 SELECT CustomerId FROM dbo.Customer WHERE Name = @Name
23END
24
25BEGIN TRY
26 INSERT INTO dbo.Customer(CustomerId, Name) VALUES (@CustomerId, @Name)
27 SELECT @CustomerId
28END TRY
29BEGIN CATCH
30 SELECT CustomerId FROM dbo.Customer WHERE Name = @Name
31END CATCH