---
title: "Bulk Insert"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/182999-bulk-insert"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Rulle"
published: "2010-03-29T13:16:59.000Z"
updated: "2010-03-30T13:32:20.000Z"
replies: 5
views: 600
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/182999-bulk-insert"
---

# Bulk Insert

## #1 — Rulle, 2010-03-29T13:16Z

Blir inte klok, får det inte att funka.
Har en textfil, datat är kopierat från excel, dvs blev en lång textfil med värden som ser ut som följande:
002-2-17-23
002-1-17-23
osv.
Jag vill nu skjuta in det in en tabell som har två kolumner, aqup och info
den ena kolumnen aqup ska ha värdena ovanför och den andra ska få samma text, se nedan.
Försöker då med följande:

USE site12
GO
BULK
INSERT dbo.aquloc
FROM 'd:\\site12.txt'
WITH
(
FIELDTERMINATOR ='\\n',
ROWTERMINATOR ='\\n'
)
GO

UPDATE dbo.aquloc
SET info ='OBS Varning!!'

Får följande fel:
Msg 2601, Level 14, State 3, Line 1
Cannot insert duplicate key row in object 'aquloc' with unique index 'aquloc_aqup_K'.
The statement has been terminated.

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

## #2 — Peter S, 2010-03-29T15:42Z

Felmeddelandet säger att du försöker skicka in ett befintligt värde i ett fält som bara tillåter unika värden.

Det verkar rimligt att du tar bort allt vad nycklar och index heter när du bulkar och sedan tvättar datat efteråt genom att ta bort sådant som inte skall finnas där, eventuellt justerar vissa värden och till sist skapar index och nycklar.

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

## #3 — Rulle, 2010-03-30T07:50Z

Det är så konstigt, för det finns redan värden i tabellen som ser lika ut, men inte är exakt samma siffror.
Kan man göra på annat sätt?

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

## #4 — Rulle, 2010-03-30T07:53Z

Kan man köra en massa av dessa samtidigt:
INSERT INTO dbo.aquloc (aqup,info)
VALUES ('002-2-17-23', 'OBS Varning!!')
VALUES ('002-2-16-23', 'OBS Varning!!')
VALUES ('002-1-17-23', 'OBS Varning!!')

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

## #5 — Peter S, 2010-03-30T10:47Z

I MySQL hade den syntaxen nästan fungerat:
insert into t(...) values (...),(...),(...)

I SQL Server får du i sådana fall skriva ut hela harangen varje gång:
insert into t(...) values (...);
insert into t(...) values (...);
insert into t(...) values (...);

...innan du kör dem i batch.

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

## #6 — Rulle, 2010-03-30T13:32Z

Nåt i denna stil får det bli i så fall:
INSERT INTO dbo.aquloc (aqup) VALUES ('002-2-17-23')
INSERT INTO dbo.aquloc (aqup) VALUES ('002-2-16-23')
INSERT INTO dbo.aquloc (aqup) VALUES ('002-1-17-23')
......
UPDATE dbo.aquloc
SET info ='OBS Varning!!'

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/182999-bulk-insert
