Hallo,
MSSQL 2008 wird über Stored Procedures abgefragt. Das Ergebnis soll nach Exel exportiert werden.
In Jet-SQL gab es den wunderbaren Befehl SELECT * INTO [test] IN 'xyz.sls' 'Excel 8.0;' FROM blablub
Der geht leider unter TSQL nicht. Wie löst man das unter TSQL? Gibt es vielleicht eine Möglicht JETSQL Befehle an ein TSQL System abzusetzen (ich denke nein)
Danke
Gremgiz
Hallo,
TSQL -> csv -> Excel
ist ein einfacher Weg das umzusetzen.
Im SQL Server Management-Studio kann das Ergebnis auch per Copy&Paste nach Excel gebracht werden.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Du kannst auch von Excel aus die Datenbank als Datenquelle benutzen ...
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
Hallo,
erst mal Danke dafür. Umweg über CSV wäre machbar. Weg über Excel ist in dem Fall nicht komfortabel. Ich will ja in meiner Applikation bleiben.
Aber nochmal zur ursprünglichen Frage: Gibt es ein Äquivalent zu dem Kommando in TSQL? Kann man es vielleicht über LINQ machen?
Gruß
Gremgiz
Hi,
hier gibt es mehrere Möglichkeiten. Die erste ist etwas umständlich, aber dann hast du die volle Kontrolle über das was exportiert wird. Nämlich der Weg über SSIS. Bei einem SSIS Packet kannst du das Ergbnis auch beliebig umformieren, ohne dies direkt im SQL zu erledigen.
Der zweite Weg ist eher der Weg den du schon kennst. Du benutzt einfach die OPENROWSET Funktion im SQL Server und baust dir eine Verbindung zur einer Excel Datei auf. Z.B.
INSERT INTO OPENROWSET(
'Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=YES;IMEX=1;Database=D:\Test.xls;', 'SELECT Name, Date FROM [Sheet1$]')
SELECT [Name], GETDATE() FROM msdb.dbo.sysjobs
Variante drei läuft über eine CLR Stored Procedure. Du könntest in der SP einfach auf Microsoft.Interop.Office.Excel zugreifen. Dazu muss die SP allerdings dann Full Trusted sein.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)