---
title: "slump-tal som pk (ms-sql)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/21368-slump-tal-som-pk-ms-sql"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "bohlin"
published: "2001-02-09T20:22:00.000Z"
updated: "2001-02-11T16:05:00.000Z"
replies: 1
views: 283
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/21368-slump-tal-som-pk-ms-sql"
---

# slump-tal som pk (ms-sql)

## #1 — bohlin, 2001-02-09T20:22Z

Jag vill att ett int-fält som är pk ska slumpas fram istället för kommer i ordning. hur skapar man en sån tabell?

create table nisse(int id primary key SLUMPTAL-någon, int fält2, o.s.v)

Permalänk: https://www.webforum.nu/p/21368

## #2 — LarsG, 2001-02-11T16:05Z

I och med att primärnyckelskolumner skall vara unika så är det lite svårt, speciellt om mam har samtidiga användare, att skapa slumpmässiga unika värden. Det finns i alla fall inget direkt stöd i databasen.
Det som finns är att man kan ange att en kolumn har ett defaultvärde, och det defaultvärdet kan vara ett funktionsanrop. Det kan vara ett anrop till en funktion som du skriver själv och som innehåller något anrop till rand-funktionen med någon lämplig seed, tex

```
create function my_random_func()
returns int as
begin
  declare @cnt int
  select @cnt = 
/* något bra seed
kanske antal millisekunder sedan någon tidpunkt */
  return (cast(10000*(rand(@cnt)) as integer))
end
```

sen kan man lägga till defaultvärdet vid create table

```
  create table ogrish(nonpk int default my_random_funk, ...
```

som sagt skulle jag inte lägga den som primärnyckel då det blir mer jobb att hitta på unika värden. Det är ju inget problem att göra order by på den kolumnen.

Alternativt kan man ha primärnyckel som räknare och randomisera vid utsökningen istället:

```
  select * from ogrish order by rand(id)
```

Permalänk: https://www.webforum.nu/p/351761

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/21368-slump-tal-som-pk-ms-sql
