webForumDet fria alternativet

Autogenererat ID med datatypen varchar

4 svar · 417 visningar · startad av Addeladde

AddeladdeMedlem sedan jan. 20013 406 inlägg
#1

Hej

Jag har ett fält i en gamal databas som uppgraderats genom åren där ett id är en sträng på 8 bokstäver. Nu skulle jag vilja ha så att om man inte anger ID själv så ska ett ID automatiskt genereras. Men hur ska jag lösa det på bäst sätt?

Det är just nu en MS SQL 2005 som körs i 2000 kompatibelt läge och SP används.

- Henke -Medlem sedan jan. 200229 inlägg
#2

Vore det inte lättast att kontrollera om värde angetts, om inte så slumpar den fram ett värde och ser om det är upptaget. Är det inte upptaget så skapas det med resterande information.

AddeladdeMedlem sedan jan. 20013 406 inlägg
#3

jo men det är ju några onödiga sql-anropp

- Henke -Medlem sedan jan. 200229 inlägg
#4

Vänd på det då?
Generera fem möjliga kombination och plocka fram de som redan existerar. Någon av dem borde ju vara ledig.

AddeladdeMedlem sedan jan. 20013 406 inlägg
#5

Jag gjorde så här:

IF @projid IS NULL
			BEGIN
			  SELECT TOP (1) @projid = CAST((CAST(projid AS INT) + 1) AS CHAR(8))
				FROM         projekt
				WHERE     (ISNUMERIC(projid) = 1)
				ORDER BY projid DESC
				
				IF @projid IS NULL
					BEGIN
					  SET @projid = '1'
					END
				
			END
126 ms totalt · 3 externa anrop · v20260731065814-full.cf67ef55
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)