ceturtdiena, 2014. gada 6. februāris

Datu apskatīšana/saglabāšana no nvarchar(max) kolonas


Iedvesmojoties no vakardienas twīta:


Ja ir varchar/nvarchar/xml utt kolonna, kurā ir daudz dati, tad kolonnas saturu SSMS nevar apskatīt (te gan jāsaka ka jaunākām SSMS versijām sanāk daudz labāk, bet joprojām ne gana labi).

Risinājums ir datus eksportēt uz failu. Savā variantā izmantoju komandvirkni (cmd.exe) un utilītprogrammu bcp (msdn plašāk).

Komandrinda, ko vajadzības gadījumā pielāgoju:
bcp "select cast(LAUKS as nvarchar(max)) from ManaTabula with (nolock) where RindasID = ID" queryout "c:\Mape\Rez.txt" -S ServeraVards -U LietotajaVards -P Parole -d DatuBaze -w

Ja slēdzos datu bāzei klāt ar Windows autentifikāciju, tad šādi:
bcp "select cast(LAUKS as nvarchar(max)) from ManaTabula with (nolock) where RindasID = ID" queryout "c:\Mape\Rez.txt" -S ServeraVards -d DatuBaze -T -w
  Šis strādā ātri un nav problēmu, ja lauka garums ir pārdesmit megabaiti.