Sellest kuidas käsurealt MSSQL andmeid kätte saada..

KL soojal soovitusel uurisin pisut MSSQL2005 utiliiti nimega bcp (loe: Bulk Copy), mis võimaldab otse käsurealt vahendada andmeid baasi ja andmetega failide vahel. Süntaks on mõõdukalt lihtne, kuid omab siiski paari twisti. Paar näidet kasutamisest allpool:

1) Väljastada tabeli X_USER sisu faili bcpTest.txt

C:\>bcp SomeDb..X_USER out bcptest.txt -c -C RAW -Usa -Slocalhost

Tähelepanu tuleks pöörata siis kindlasti vajadusele määrata kuidas kooditabelitega hakkama saada (-C RAW), muidu komistad sa pikalt ja pidevalt järgmise veateate otsa:

Starting copy...
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC SQL Server Driver][SQL Server]Code page 775 is not supported by SQL Server
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC SQL Server Driver]Unable to resolve column level collations

BCP copy out failed

Antud lahendust ja põhjuseid kirjeldatakse ka siin.

2) Väljastada üks baasis hoitab pdf faili bcptest.pdf (image andmetüübist)

C:\>bcp "select DATA from SomeDb..DATA_FILE where ID=1281" queryout bcptest.pdf -Usa -localhost -N

Andmete sisestamiseks on samuti vahendid. Samuti saab seadistada veel tulesid-vilesid. Näiteks muuta veeru- ja reaeraldajaid.

Kommentaare ei ole: