---
title: "Lägga till 1 på varje insert"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/156897-lägga-till-1-på-varje-insert"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "doggelito"
published: "2007-02-07T08:26:47.000Z"
updated: "2007-02-07T09:29:39.000Z"
replies: 4
views: 247
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/156897-lägga-till-1-på-varje-insert"
---

# Lägga till 1 på varje insert

## #1 — doggelito, 2007-02-07T08:26Z

Hej, 
har en vanlig insert som ser ut typ så här:

```
INSERT INTO Tabell2
	(Kolumn1, Kolumn2, SortId)
SELECT Kolumn1, Kolumn2, ??
FROM Tabell1
```

Låt oss säga att tabell 1 innehåller 3 poster. 
Mao. 3 poster kopieras över till tabell 2.
Nu skulle jag vilja att SortId automatiskt lägger till 1 för varje post, går det på nått fiffigt sätt?

Resultatet blir då:
Kolumn1   Kolumn2   SortId
bla          bla          1
bla          bla          2
bla          bla          3

Databas: sqlserver 2005

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

## #2 — @nders, 2007-02-07T08:29Z

Vill du att sortID ska bli ett högre än det är i tabell1, eller vill du att en "räknare" börjar på 1 och ökar med varje inlagd post?

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

## #3 — doggelito, 2007-02-07T08:36Z

En räknare skulle man kunna kalla det, dock inte unik då samma siffra kan finnas sen tidigare.
Man skulle väl kunna kalla det "sessionunikt", typ om man kan få en räknare i just detta "scope".
SortId ska alltid börja på 1 och öka 1 för varje post.

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

## #4 — @nders, 2007-02-07T08:43Z

I brist på bättre idéer:

Skapa en temptabell med en räknare. Gör inserts i temptabellen. Flytta posterna från temptabellen till tabell2.

mvh

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

## #5 — doggelito, 2007-02-07T09:29Z

Mm, var inne på den idén också, men det känns så himla sql 2000 -tal! ;)
Det måste ju bara finnas nått fiffigare sätt i 2005:an eller?

```
CREATE TABLE #tmp (Id int identity(1,1), ColId int not null)

INSERT INTO #tmp (ColId)
SELECT ColId
FROM Tabell1
WHERE bla = bla

INSERT INTO Tabell2
	(Kolumn1, SortId)
SELECT Kolumn1, t.Id
FROM Tabell1 a
INNER JOIN #tmp t ON a.ColId = t.ColId
WHERE a.bla = bla
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/156897-lägga-till-1-på-varje-insert
