BCP nie zwraca błędów, ale również nie kopiuje żadnych wierszy

Usiłuję zrzucić bardzo duży zestaw danych z pliku .csv do bazy danych SQL Server 2012. Zamiast robić tysiące WSTAW, badambcp.

EDYTOWAĆ: Dotyczy to zautomatyzowanego procesu, a nie tylko jednorazowego. Ja też nie mamBULK INSERT prawa do tej bazy danych.

Kiedy próbuję skopiować dane do bazy danych,bcp nie zwraca żadnych błędów, ale także nie kopiuje niczego - po prostu wraca0 rows copied. Zredukowałem to do minimalnego przypadku, który nie działa.

Najpierw utwórz prostą tabelę z dwiema kolumnami:

CREATE TABLE [dbo].[mincase](
    [key] [varchar](36) NOT NULL,
    [number] [int] NOT NULL

    PRIMARY KEY CLUSTERED 
    (
        [key] ASC
    )
    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 40) ON [PRIMARY]
) ON [PRIMARY]

GO

Następnie użyjbcp aby utworzyć z tego plik formatu. Zauważ, że ten przykład tworzy plik w formacie XML, ale nie ma znaczenia, czy jest to XML czy natywny.

bcp MyDB.dbo.mincase format nul -T -n -f mincasexml.fmt -x -S .\SQLEXPRESS

Teraz utwórz plik data.csv z jednym wierszem i dwoma wpisami rozdzielonymi tabulatorami. W moim przypadku plik jest po prostu:

somecharacters  12345

Ponownie, to jest karta, a nie dwie spacje, i nie wydaje się, aby miało znaczenie, czy są końcowe znaki nowej linii, czy nie.

Teraz spróbuj użyćbcp z tym plikiem formatu, aby wstawić dane z tego pliku:

bcp MyDB.dbo.mincase in data.csv -f mincasexml.fmt -T -S .\SQLEXPRESS

Zamiast kopiować dane do bazy danych, otrzymuję to:

Starting copy...

0 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total     : 1

Czy ktoś wie, co tu się dzieje?

Dzięki!

questionAnswers(2)

yourAnswerToTheQuestion