Avatar billede mikaelduus Nybegynder
03. maj 2007 - 12:29 Der er 8 kommentarer

Eksportere indholdet af en tabel til tekstfil

Hej,

Er der nogen der ved, hvad syntaksen er for at eksportere indholdet af en tabel til en tekstfil i T-SQL (noget ligesom Select into outfile i MySQL)?
Avatar billede isl19960 Nybegynder
03. maj 2007 - 12:54 #1
Skal det være T-SQL.

MS-SQL har en ekstern kommando til ind- og udlæsninger, der hedder BCP.

http://msdn2.microsoft.com/en-us/library/ms162802.aspx

Her kan du læse hele syntaks, med forklaringer og eksempler.
Avatar billede mikaelduus Nybegynder
03. maj 2007 - 13:02 #2
Det er fordi jeg har en stored procedure, hvor jeg laver en hel masse og vil i den forbindelse vedhæfte indholdet af en tabel som en tekstfil i en mail, der sendes afsted i slutningen af kørslen.

Jeg kiggede lidt på bcp, men sådan som jeg forstår det skal den køres i en komandoprompt (via xp_cmdshell). Hvis det er rigtigt er det da lidt noget hø at køre en komandolinie inde fra databasen, der også kræver brugernavn og adgangskode for at kunne udføre jobbet. Der må vel findes noget lidt mere simpelt?
Avatar billede jim_marius Nybegynder
03. maj 2007 - 14:00 #3
Kan du ikke anvende xp_sendmail som giver mulighed for at køre en query og attache denne til en mail.

http://msdn2.microsoft.com/en-us/library/ms189505.aspx
Avatar billede isl19960 Nybegynder
03. maj 2007 - 14:19 #4
Ellers er du nok ude i noget SSIS - og der står jeg lige af :-)

... men her et et link til om export-wizarden til SSIS.

http://msdn2.microsoft.com/en-us/library/ms140052.aspx
Avatar billede mikaelduus Nybegynder
07. maj 2007 - 14:26 #5
jim_marius: som der står i dit link udgår xp_sendmail i næste udgave af SQL server, og afløseren Database mail understøttes ikke af SQL server Express Edition, så den duer ikke for mig. -men ellers en udemærket idé, og mange tak for forsøget :o)

isl19960: SSIS er nok også at gøre det mere kompliceret end det bør være. Jeg har faktisk selv fundet svaret i mellemtiden, og vil naturligvis gerne dele det, hvis andre skulle have samme problemstilling. Da du også har hjulpet vil jeg gerne give point, hvis du lige poster et svar. Løsningen her er måske ikke optimalt, men alligevel en simpel måde at klare det på:

EXEC xp_cmdshell 'bcp AFVIKLING_DB.dbo.AFVIKLING_LOG out "C:\temp\AFVIKLING.txt" -S SQLEXPRESS -T -c'
Avatar billede isl19960 Nybegynder
07. maj 2007 - 15:03 #6
Det var vist for lidt jeg kunne hjælpe, til at skulle ha' point for det...

Behold du bare dem...
Avatar billede isl19960 Nybegynder
07. maj 2007 - 15:11 #7
... men bortset fra det, så ser export-wizarden ud til at være til at gå til.

Resten af SSIS er vist noget helt andet :-)

En anden årsag til at kigge på export-wizarden er vel, at man løsner lidt på sikkerheden ved at tillade xp_cmdshell ?
Avatar billede mikaelduus Nybegynder
08. maj 2007 - 08:34 #8
Det er rigtigt nok, men BCP kan vel få adgang til databasen med "-T" uanset om xp_cmdshell er aktiveret eller ej? -når den køres i en prompt virker den vel også? Som jeg ser det er problemet vel at man overhovedet kan have en trusted connection?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester