· 9 years ago · Sep 28, 2016, 11:48 PM
1CREATE TABLE mtestUnique
2(
3 id INT ,
4 [DESC] varchar(50),
5 UNIQUE([DESC])
6)
7
8SET XACT_ABORT ON;
9DECLARE @time VARCHAR(50)
10
11WHILE (1=1)
12BEGIN
13 IF OBJECT_ID('tempdb..#t') IS NOT NULL
14 DROP TABLE #t
15
16 SELECT @time = CAST(DATEPART(HOUR , GETDATE()) AS VARCHAR(10)) + ':' + RIGHT('00' +CAST(DATEPART(MINUTE , GETDATE())+1 AS VARCHAR(2)),2)
17
18 SELECT MAX(id) + 1 id , 'test' + @time [DESC]
19 INTO #t
20 FROM dbo.mtestUnique
21
22 -- to insert as exact same time
23 WAITFOR TIME @time
24
25 INSERT INTO dbo.mtestUnique
26 ( id, [DESC] )
27 SELECT *
28 FROM #t t
29 WHERE NOT EXISTS (
30 SELECT 1
31 FROM dbo.mtestUnique u
32 WHERE u.[DESC] = t.[Desc]
33
34 )
35
36END