Benennen Sie die Tabelle nach Auswahl

8

In der gespeicherten Prozedur MS SQL Meine Abfrage lautet:

%Vor%

Ich möchte der Ergebnistabelle einen Namen geben. Wie kann ich das tun?

Ich möchte es zu ADO.Net DataSet.tables ["NAME"]

ziehen     
Mark T 21.04.2011, 07:25
quelle

4 Antworten

27

Ich kann mir ein paar Dinge vorstellen, die Sie vielleicht meinen.

Wenn Sie diese Ergebnismenge für mehrere spätere Abfragen beibehalten möchten, suchen Sie möglicherweise nach SELECT INTO:

%Vor%

Dabei ist NewTableName ein neuer Name und eine neue (permanente) Tabelle wird erstellt. Wenn Sie möchten, dass diese Tabelle nach der Fertigstellung verschwindet, setzen Sie den Namen mit # voran, um eine temporäre Tabelle zu erstellen.

Alternativ können Sie es auch nur in einer einzigen größeren Abfrage aufnehmen. In diesem Fall würden Sie versuchen, es zu einem Subselect zu machen:

%Vor%

oder ein CTE:

%Vor%

Schließlich könnten Sie darüber sprechen, das Ergebnis in z. eine ADO.Net DataTable, und Sie möchten, dass der Name automatisch festgelegt wird. Ich bin mir nicht sicher, ob das machbar ist.

    
Damien_The_Unbeliever 21.04.2011, 07:38
quelle
2

Sie können eine Variable vom Typ table verwenden. Lesen Sie hier mehr: Tabellenvariablen in T-SQL

    
Ocaso Protal 21.04.2011 07:33
quelle
0

in der gespeicherten Prozedur:

%Vor%

in Vb.Net-Code:

%Vor%

Kinda SILLY (oder STUPID), dass Sie Tabellen in einer Ergebnismenge nicht benennen können. Aber das bringt Sie dorthin, ohne dass eine HUGE Bytezählung den Tabellennamen in jeder Zeile wiederholt.

Es gibt immer noch Overhead, der den NULL-Wert für jede Zeile zurückgibt. Vielleicht wäre es noch kleiner, einen BIT-Wert zu übergeben ...

Und eine Alternative ist immer Spalte (0) zu verwenden:  in SQL:

%Vor%

in vb.net:

%Vor%

Diese Methoden erhalten Ihre Tabellennamen auch dann, wenn die Abfrage null Zeilen zurückgibt.

aber das Beste für den letzten ... eine Möglichkeit, die Tabellen im Dataset automatisch zu benennen, jedes Mal FROM SQL STORED PROCEDURE (mit Hilfe Ihres Codes):

%Vor%

Danach können Sie auf Ihre Tabellen mit dem Namen zugreifen, den Sie innerhalb der gespeicherten Prozedur kontrollieren ... wie es vom ersten Tag an sein sollte!

BEARBEITEN : selektive Implementierung: Benennen Sie die erste Spalte im Muster "TN: Kunde". Ihre gespeicherten Stored Procedures funktionieren normal und haben nur Auswirkungen auf die gespeicherten Prozeduren, die Sie ändern möchten.

%Vor%

... David ...

    
davidWazy 20.04.2017 02:27
quelle
-2
%Vor%     
Sophie Sperner 21.04.2011 07:29
quelle