Laden...

TSQL Abfrageergebnisse nach Excel exportieren

Erstellt von Gremgiz vor 12 Jahren Letzter Beitrag vor 12 Jahren 4.985 Views
G
Gremgiz Themenstarter:in
106 Beiträge seit 2006
vor 12 Jahren
TSQL Abfrageergebnisse nach Excel exportieren

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

6.911 Beiträge seit 2009
vor 12 Jahren

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!"

G
538 Beiträge seit 2008
vor 12 Jahren

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)

G
Gremgiz Themenstarter:in
106 Beiträge seit 2006
vor 12 Jahren

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

3.511 Beiträge seit 2005
vor 12 Jahren

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)