2009-07-30 3 views
0

Ich greife auf eine gespeicherte Prozedur von ADO.NET. Die gespeicherte Prozedur sollte schließlich eine einzelne Ergebnismenge zurückgeben.Gespeicherte Prozedur und .NET: SELECT INTO in temporäre Tabelle: Ergebnis unterdrücken

Um dieses Ergebnis zu berechnen, wird eine temporäre Tabelle mit einer SELECT INTO-Anweisung gefüllt.

Das Problem besteht darin, dass das Ergebnis der SELECT INTO-Anweisung auch als Ergebnis zurückgegeben wird, das auf .NET festgelegt ist.

Kann dies unterdrückt werden? Oder sollte ich nicht SELECT INTO, sondern CREATE TABLE gefolgt von einer INSERT-Anweisung verwenden?

Antwort

2

Ich würde vorschlagen, SELECT INTO zu vermeiden, da es Ihre Spaltennamen/-typen ableitet, und wenn Ihre Quellenabfrage in irgendeiner Weise komplex ist (wie CASE-Anweisungen), kann dies zu unerwarteten Ergebnissen führen.

Ich erstelle immer entweder eine Tabellenvariable oder eine temporäre Tabelle, wenn ich Werte wie beschrieben speichern muss.

Wenn Sie CREATE TABLE #TableName() (oder DECLARE @ tableName TABLE()) verwenden, dann verwenden Sie INSERT, dann erhalten Sie das zusätzliche Ergebnis nicht zurückgegeben.

Verwandte Themen