2009-07-26 11 views
0

dies ein ziemlich pathetisch Problem ist:Abfrage zu lange in .NET 3.5 und SQL Compact 3.5

In Visual Basic 2008 Express mit SQL Server Compact 3.5 und den üblichen DataSet/Tableadapters, Meine Abfrage zu lang:

die Namen ändern, ist es eine Abfrage wie folgt:

SELECT Table1.*, Table3.* 
FROM Table1 
    INNER JOIN Table2 
     ON Table1.ID = Table2.T1ID 
    INNER JOIN Table3 
     ON Table2.T3ID = Table3.PK 

Problem ist, Tabelle 1 und Tabelle 3 haben etwa 10 und 5 Spalten jeweils mit eher beschreibenden Namen und die Tabelle Adapter ist hartnäckig auf alle Spalten schreiben aus und hackt deshalb mein Kommando ab. (Es wird * nicht dauern, es sagt immer, dass es die Spalte Table1 nicht finden kann. *)

Gibt es einen Weg darum?

+0

brauchen Sie alle Spalten? ich bevorzuge es überhaupt nicht * – Sadegh

+0

traurig, ja zu verwenden. Ich brauche alles, auch wenn es mein Schicksal bedeutet. – wsd

Antwort

1

Wenn Sie einen Alias ​​für die Tabellen hinzufügen, wird der Tabellenadapter das übernehmen?

SELECT t1.*, t3.* 
FROM Table1 t1 
    INNER JOIN Table2 t2 
     ON t1.ID = t2.T1ID 
    INNER JOIN Table3 
     ON t2.T3ID = t3.PK 
+0

Ich denke, es würde immer noch die Spalten schreiben (t1.Column1, t1.Column2, ... etc ...) – wsd

+0

Ja, aber vielleicht macht es die Abfrage kurz genug. – ZippyV

+0

gutes Denken, ich bin upvoting, auch wenn das nicht funktioniert, weil es für ähnliche Probleme könnte, und weil es eine gute Idee dahinter – wsd

0

Setzen Sie die Abfrage in einer gespeicherte Prozedur und dann rufen Sie einfach an. (Es ist auch sauberer, effizienter und hilft, die Logik in der Datenbank zu kapseln, anstatt Ihre Anwendung nur tun, was sie mag)

+1

Außer gespeicherte Prozeduren werden in SQL Server-Komprimierung nicht unterstützt. – ZippyV

+0

Genau, also das ist eine No-No. – wsd