Strony

wtorek, 19 kwietnia 2011

Mapowanie dysku sieciowego z pozycji T-SQL-a

Dziś pokażę w jaki prosty sposób zmapować dysk sieciowy z poziomu MSSQL-a. Jest to szczególnie przydatne w momencie jak chcemy pobrać jakiś plik ze zdalnego serwera zabezpieczonego za pomocą loginu i hasła np. w celu załadowania za pomocą BULK INSERT


xp_cmdshell 'cmd /c IF EXIST W: net use W: /DELETE'
xp_cmdshell 'cmd /c net use W: \\maszyna\udzial haslo /USER:maszyna\login /PERSISTENT:YES'

 BULK INSERT dbo.tabela
   FROM 'W:\plik.txt'
   WITH
   (
   FIELDTERMINATOR =';',
   ROWTERMINATOR ='\n',
   FIRSTROW = 2,
   CODEPAGE = 1250
   )

jeżeli z jakiegoś powodu nie chcemy angażować dysku sieciowego, to wykorzystamy UNC

xp_cmdshell 'cmd /c IF EXIST \\maszyna\udzial net use \\maszyna\udzial /DELETE'
xp_cmdshell 'cmd /c net use W: \\maszyna\udzial haslo /USER:maszyna\login /PERSISTENT:YES'

 BULK INSERT dbo.tabela
   FROM '\\maszyna\udzial\plik.txt'
   WITH 
   (
   FIELDTERMINATOR =';',
   ROWTERMINATOR ='\n',
   FIRSTROW = 2,
   CODEPAGE = 1250
   )


0 komentarze:

Prześlij komentarz

Share it

SyntaxHighlighter