Sto provando a scaricare un insieme molto grande di dati da un file .csv in un database SQL Server 2012. Invece di fare migliaia di INSERT, sto indagando su bcp
.BCP non restituisce errori, ma non copia alcuna riga
MODIFICA: Questo è per un processo automatizzato, e non solo una tantum. Inoltre, non ho i diritti BULK INSERT
per questo database.
Quando provo a copiare i dati nel database, bcp
non restituisce errori, ma in realtà non copia nulla: restituisce solo 0 rows copied
. L'ho ridotto a un caso minimale che non funziona.
In primo luogo, creare una semplice tabella con due colonne:
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
Quindi, utilizzare bcp
per creare un file di formato da questo. Nota che questo esempio crea un file in formato XML, ma non importa se è XML o nativo per questo.
bcp MyDB.dbo.mincase format nul -T -n -f mincasexml.fmt -x -S .\SQLEXPRESS
Ora creare un file data.csv con una riga e due voci, delimitato da tabulazioni. Nel mio caso, il file è semplicemente:
somecharacters 12345
Anche in questo caso, che è una scheda, non due spazi, e non sembra importare se ci sono finali a capo o meno.
Ora provate a utilizzare bcp
con quel file di formato per inserire i dati da questo file:
bcp MyDB.dbo.mincase in data.csv -f mincasexml.fmt -T -S .\SQLEXPRESS
Piuttosto che la copia dei dati alla base di dati, ottengo questo:
Starting copy...
0 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total : 1
Qualcuno sa cosa sta succedendo qui?
Grazie!
hai provato l'opzione IMPORTA DATI? –