Eigentlich habe ich eine Stored Procedure (die ein Objekt als Eingabe nimmt), die entweder zwei oder drei Tabelle (Resultsets) zurückgibt. Jetzt muss ich die Objekte nach der Anzahl der Ergebnismengen kategorisieren. Wie kann ich das programmatisch machen? Der Vorgang ist nicht bearbeitbar. Ansonsten war es ein kleiner Job, der mit einer Flagge gemacht wurde. Vielen Dank im VorausWie zähle ich die Anzahl der Ergebnismengen, die von einer gespeicherten Prozedur zurückgegeben werden? (SQL Server 2012)
Antwort
Zählen Sie die Anzahl der erfolgreichen NextResult()
Anrufe zu Ihrem SqlDataReader
.
Update nach der Diskussion in den Kommentaren.
Ergebnissätze werden sofort verfügbar. Das heißt, die erste kann lange vor dem Abschluss der gespeicherten Prozedur verfügbar sein, und solange die Prozedur ausgeführt wird, gibt es keine Möglichkeit (abgesehen von der Quellcodeanalyse) festzustellen, wie viele weitere Ergebnismengen noch verfügbar sind. Also müssen Sie die Prozedur bis zum Ende ausführen, alle Ergebnismengen abrufen und nur dann können Sie sie richtig zählen. Was Sie vorschlagen, ist effektiv gespeicherte Prozedur auf SQL Server bis zum Ende ausgeführt und analysieren, wie viele Ergebnismengen verfügbar wurde. Das kann (Art) durch EXEC ... WITH RESULT SETS
(SQL Server 2012 und on) mit der Fehlerbehandlung getan werden, aber das wird drastisch ineffizient sein.
Wenn Sie eine neue Prozedur erstellen können, warum implementieren Sie die vorhandene nicht mit einem zusätzlichen Rückgabewert?
Gibt es keine Möglichkeit, es von ** nur SQL Server ** zu erledigen? – Tanmoy
Sicher gibt es, aber ich dachte "Der Vorgang ist nicht editierbar" ... –
Ja. Deshalb denke ich darüber nach, eine neue Prozedur zu erstellen und die vorherige Prozedur aufzurufen und die Anzahl der Tabellen zu zählen. Gibt es einen Weg es zu tun? – Tanmoy
Erstellen Sie ein Dataset, und füllen Sie es, indem Sie die gespeicherte Prozedur aufrufen. Zählen Sie dann die Tabellen des Datasets.
Gibt es keine Möglichkeit, dies nur von SQL Server zu erledigen? Ich denke darüber nach, eine neue Prozedur zu erstellen und die vorherige Prozedur aufzurufen und die Anzahl der Tabellen zu zählen. Gibt es einen Weg es zu tun? – Tanmoy
- 1. Anzahl der Datensätze einer Tabelle abrufen, die von der gespeicherten Prozedur zurückgegeben werden
- 2. Wie kann ich die Anzahl der Datensätze abrufen, die von einer gespeicherten Prozedur betroffen sind?
- 3. Wie Zeilen und eine Variable aus einer gespeicherten SQL Server-Prozedur zurückgegeben werden
- 4. Verringern der Anzahl der Vergleiche in einer gespeicherten SQL-Prozedur
- 5. Wie unterdrücke ich die Ergebnisse einer gespeicherten Prozedur aus einer gespeicherten Prozedur?
- 6. Zugriff auf Resultsets aus gespeicherten Prozeduren Transact-SQL SQL Server
- 7. Wie gebe ich den Tabellennamen dynamisch in der gespeicherten Prozedur in SQL Server 2012 ein
- 8. Wie starten Sie SQL Server-Auftrag von einer gespeicherten Prozedur?
- 9. Wie kann ich Rückgabewerte abrufen, die von gespeicherter Prozedur zurückgegeben werden, die InsertOnSubmit in LINQ
- 10. Wie zähle ich die Anzahl der Kommentare in JIRA
- 11. Abrufen von Spaltennamen/Typen, die von einer gespeicherten Prozedur zurückgegeben werden
- 12. TSQL - Auswertung des Ausführungsplans zum Ermitteln von Spalten, die von einer gespeicherten Prozedur zurückgegeben werden
- 13. Wie zähle ich die Anzahl der Zeilen in einem jqGrid?
- 14. Kann Entity Framework mehrere Ergebnismengen (jeweils aus verbundenen Tabellen) von einer gespeicherten Prozedur verarbeiten?
- 15. Ausführen einer gespeicherten Prozedur in einer anderen gespeicherten Prozedur in SQL Server
- 16. Zählen der Anzahl gelöschter Zeilen in einer gespeicherten SQL Server-Prozedur
- 17. SQL Server, mit Funktionen in gespeicherten Prozedur
- 18. Wie berechnet SQL Server die geschätzte Anzahl der Zeilen?
- 19. Wie zähle ich die Anzahl der Übereinstimmungen durch eine Regex?
- 20. Wie können die Datentypen nach dem Ausführen einer gespeicherten Prozedur angegeben werden?
- 21. Excel Wie zähle ich die Anzahl der Zeilen mit Daten?
- 22. Was ist der effizienteste Weg, um die Ergebnisse einer gespeicherten Prozedur von einer anderen gespeicherten Prozedur aus zu zählen?
- 23. Auftrag von einer gespeicherten Prozedur
- 24. Zugriff auf die zweite Ergebnismenge der gespeicherten Prozedur mit SQL oder einer anderen Problemumgehung? Python \ pyodbc
- 25. SQL Aggregat Ergebnisse einer gespeicherten Prozedur
- 26. Wie mehrere Zeilen aus der gespeicherten Prozedur zurückgegeben werden? (Oracle PL/SQL)
- 27. SQL Server: Auto-inkrementierte ID in einer gespeicherten Prozedur abrufen?
- 28. Entity Framework - Rückgabewert der gespeicherten Prozedur
- 29. SqlAdapter.Fill (DataSet) füllt nur die erste Datentabelle, die von der gespeicherten Prozedur in Xamarin zurückgegeben wird
- 30. java 101, wie zähle ich die Anzahl der Argumente, die an main übergeben werden?
zeigen Sie einige Beispiele oder schauen Sie hier, wie Sie eine gute Frage stellen: https: //spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ – TheGameiswar
Sie sollten angeben, wie Sie gespeicherte Prozedur aufrufen! –
Ich rufe die gespeicherte Prozedur durch eine andere Prozedur (die eine Schleife hat) .. – Tanmoy