Programul BCP

BCP date de copiere program de masă între o instanță a Microsoft SQL Server și un fișier de date în formatul specificat. Cu acest program puteți bcp pentru a importa un număr mare de rânduri noi în tabele SQL Server sau export de date din tabele în fișiere de date. Cu excepția cazului când se utilizează parametrul queryout. programul nu necesită aplicarea de cunoaștere a limbii Transact-SQL. Pentru a importa date într-un tabel, este necesar, sau de a folosi un format de fișier creat pentru tabel sau tabele pentru a studia structura și tipurile de date care sunt permise pentru coloanele sale.







notație Sintaxa folosită pentru sintaxa bcp, vezi convențiile de sintaxă Transact-SQL (Transact-SQL).


Când utilizați utilitarul bcp pentru a crea un format de fișier copie de rezervă pentru înregistrarea format de date. Fișierele dannyhbcp nu includ informații cu privire la sistemul sau format, astfel încât atunci când eliminați un tabel sau vedere, în cazul în care nu există nici un fișier format de import de date va fi imposibil.

data_file
Calea completă a fișierului de date. După efectuarea datelor de import în vrac într-un fișier de bază de date SQL Server conține datele care urmează să fie copiate la masa sau vizualizarea specificată. După efectuarea datelor de export în vrac de la SQL Serverfayl conține datele copiate din tabel sau vizualizare. Calea poate conține între 1 și 255 de caractere. Fișierul de date poate conține un număr maxim de 2 63-1 rânduri.

nume_bază_date
Numele bazei de date în care tabelul specificat sau de vedere. Această bază de date va fi utilizată în mod implicit pentru utilizator, cu excepția cazului în care se prevede altfel.

De asemenea, puteți specifica în mod explicit numele bazei de date cu d-.

indata_file | outdata_file | queryoutdata_file | formatul Nul
Specifică direcția de copiere în vrac după cum urmează:

Formatul creează un fișier în format bazat pe parametrii specificați (-n. -c. -w. sau N) și masa de separare sau de vizualizare. Când efectuați un program de bloc BCP date de copiere se poate referi la un format de fișier care vă permite să evitați tastarea într-un format interactiv al modului de date. Parametrul format necesită opțiunea -f. Pentru a crea un fișier formatat XML, în plus, necesită opțiunea -x. Pentru mai multe informații, consultați Crearea unui fișier de format XML (SQL Server). Valoarea trebuie să specifice Nul (format Nul).

proprietar
numele proprietarului, al tabelei sau vizualizării. Nu puteți specifica un parametrowner opțional. În cazul în care utilizatorul efectuează operațiunea deține tabelul specificat sau punctul de vedere. SQL Server returnează un mesaj de eroare, iar operația este finalizată, în cazul în care proprietarul nu este specificat și utilizatorul efectuează operațiunea, nu proprietarul mesei sau vizualizarea specificată.

„Solicitare“
Cerere de limba Transact-SQL, care returnează un set de rezultate. Dacă interogarea returnează mai multe seturi de rezultate, doar primul set de rezultate va fi copiat în fișierul de date. seturi de rezultate ulterioare sunt ignorate. Folosiți ghilimele pentru interogare și de cotare unică marcajele pentru fraze care sunt încorporate în cerere. Când efectuați o copie de date în bloc dintr-o interogare este necesară, printre altele, să specifice argumentqueryout.

Cererea se poate referi la procedura stocată în cazul în care toate tabelele care se face referire în procedura stocată, acolo înainte instrucțiunile BCP. De exemplu, în cazul în care o procedură stocată creează o tabelă temporară, declarația BCP eșuează deoarece tabela temporară este disponibilă numai în timpul rulării, mai degrabă decât în ​​timpul pornirii manuale. În acest caz, aveți posibilitatea să inserați rezultatele unei proceduri stocate într-un tabel și apoi utilizați BCP pentru a copia datele din tabel într-un fișier de date.

nume_tabelă
țintă nume de tabel atunci când importul de date în SQL Server (în) sau tabelul sursă atunci când exportul de date din SQL Server (out).

-apacket_size
Specifică numărul de octeți din fiecare pachet de rețea, care este trimis de la server și serverul. folosind mediul, puteți seta parametrii configuratiei serverului SQL Server Management Studio (sau procedura de sistem sp_configure stocate). Cu toate acestea, configurația parametrilor serverului, în unele cazuri, pot fi modificate de acest parametru. Znacheniepacket_size poate fi în intervalul de la 4096 la 65535 bytes, valoarea implicită este 4096.







Creșterea în dimensiune pachet poate îmbunătăți performanța operațiunilor de copiere în vrac. Dacă ați solicitat un pachet mai mare, dar nu poate fi furnizat, atunci valoarea implicită. Statisticile de performanță, programul de format de BCP. Acesta arată dimensiunea pachetului utilizat.

-bbatch_size
Specifică numărul de linii din fiecare pachet de date importate. Fiecare pachet este importat și înregistrată ca o tranzacție separată, care este fixat după importul întregului pachet. În mod implicit, importul toate rândurile din fișierul de date se realizează într-un singur pachet. Pentru a distribui pachete între mai multe linii, selectați valoarea batch_size mai mic decât numărul de rânduri din fișierul de date. În cazul în care tranzacția de pachete eșuează, va fi derulată înapoi insera numai operațiuni în pachetul curent. Greseli se întâmplă și nu afectează pachetele care importurile deja efectuate tranzacții angajate.

Acest parametru nu este utilizat în conjuncție cu -h »ROWS_PER_BATCH = bb« ** opțiune.

-c
Se efectuează operațiunea folosind un tip de date caracter. Această opțiune nu solicită tipul fiecărui câmp de date. se folosește char ca tip de stocare, fără prefixe și cu \ t (caractere tab) ca separator de câmp și \ r \ n (newline) ca la sfârșitul caracteristicii liniei. -c nu este compatibil cu -w.

-C
Specifică pagina de cod a datelor din fișierul de date. code_page are valoare numai în cazul în care datele conține char. varchar. de text sau de caractere coloane cu valori mai mari de 127 sau mai mică de 32.

Pentru a specifica un nume de bază de date care conține un spațiu sau ghilimele, trebuie să utilizați -q.

Pentru numele proprietarului, al mesei sau vizualizarea care conține spații încorporate sau ghilimele, acesta poate fi, de asemenea:

specificați parametrul -q; sau

incheie proprietar, tabel sau vizualizare între paranteze pătrate ([]) în interiorul ghilimelelor.

Acum programmabcp produce de validare a datelor, ceea ce poate duce la erori în script-urile existente în cazul în care fișierele de date vor conține date nevalide. De exemplu, programul BCP verifică dacă:

idei proprii float sau tipuri de date reale sunt valide.

Aceste Unicode au chiar lungime.

Poate că aceste date incorecte, importurile care ar putea fi efectuată operațiunea de import în vrac, în versiunile anterioare de SQL Server, nu mai putea să descărcați, în timp ce în versiunile anterioare ale erorii apare numai atunci când clientul încearcă să se conecteze la datele incorecte. Adăugarea de validare reduce probabilitatea de urgență în timpul datelor interogării după încărcare în vrac.

Pentru vrac de import sau de export SQLXML-date, utilizați una dintre următoarele tipuri de date în format de fișier:

Sqlchar sau SQLVARYCHAR

Datele sunt trimise la pagina de cod client sau pagina de cod, o compilație specifică. Rezultatul este același ca atunci când specificați opțiunea -c fără a specifica un fișier în format.

SQLNCHAR sau SQLNVARCHAR

Datele sunt trimise ca Unicode. Rezultatul este același ca atunci când specificați parametrul -w fără a specifica un fișier în format.

SQLBINARY sau SQLVARYBIN

Datele sunt trimise fără nici o conversie.

Operațiunea trebuie să fie bcpout SELECT permisiune de pe tabela sursă.

Bcpin de operare nevoie de cel puțin SELECT permisiuni / inserare pe tabela destinație. În plus, permisiunea ALTER TABLE este necesară în următoarele cazuri.

există limitări, și o indicație nu CHECK_CONSTRAINTS specificat.


Restricțiile sunt dezactivate în mod implicit. Pentru a activa constrângeri în mod explicit, utilizați opțiunea -h cu CHECK_CONSTRAINTS prompte.

Declanșatoare există și FIRE_TRIGGER instruiți nu este specificat.


În mod implicit, declanșează nu foc. Pentru a începe declanșatoare în mod explicit, utilizați opțiunea -h cu FIRE_TRIGGERS prompte.

Utilizați -e. pentru a importa valorile de identitate în fișierul de date.

Această secțiune conține recomandări pentru modul de caractere (-c) și modul nativ (N).

(Administrator / utilizator) Dacă este posibil, utilizați un format proprietar (N) pentru a evita problemele cu diviziunea. Utilizați formatul nativ pentru export și import, folosind SQL Server. Exporta datele din SQL Server prin folosind - c -w sau, în cazul în care datele urmează să fie importate într-o altă țară decât SQL Server de baze de date.

(Administrator) Verificați datele atunci când se utilizează BCP OUT. De exemplu, folosind BCP OUT, IN BCP, și apoi BCP OUT verifica dacă datele corecte sunt exportate și valorile finale ale caracteristică nu este utilizat ca parte a unei valori date. Încercați să suprascrie implicit atributele final (folosind parametrii și -t - r) la valori hexazecimale aleatoare pentru a evita un conflict între valorile datelor caracteristice și valorile finale.

(Utilizator) Folosiți funcțiile lungi și unice ale modului (orice secvență de octeți sau caractere), pentru a minimiza posibilitatea de conflict cu valoarea reală șir. Acest lucru se poate face folosind -t șiRa.

Această secțiune cuprinde următoarele exemple.

J. Crearea unui fișier în format într-o altă țară decât XML format

Z. Crearea de fișier formatat XML

I. Utilizarea unui fișier în format la importul de date în vrac folosind utilitarul bcp c

În linia de comandă, tastați următoarea comandă:

In acest exemplu, se presupune că modul de autentificare mixt aplicat. Pentru a specifica ID-ul de conectare este necesar să se utilizeze -U. În plus, cu excepția cazurilor când o conexiune la o instanță nu este o instanță a SQL Server implicit pe computerul local, trebuie să utilizați parametrul -S. pentru a specifica numele de sistem și (dacă este necesar), un nume de instanță.

Sistemul vă solicită să introduceți parola.