Ich glaube, ich habe das gleiche Problem, das kcrumley in der Frage " Problem beim Aufrufen einer gespeicherten Prozedur aus einer anderen gespeicherten Prozedur über Classic ASP ". Allerdings enthält seine Frage nicht wirklich eine Lösung, also werde ich es noch einmal versuchen und meine eigenen Beobachtungen hinzufügen:
Ich habe zwei gespeicherte Verfahren:
CREATE PROCEDURE return_1 AS BEGIN
SET NOCOUNT ON;
SELECT 1
END
CREATE PROCEDURE call_return_1_and_return_2 AS BEGIN
SET NOCOUNT ON;
EXEC return_1
SELECT 2
END
Beachten Sie, dass beide Prozeduren "SET NOCOUNT ON" enthalten. Wenn ich "call_return_1_and_return_2" ausführe, erhalte ich immer noch zwei Datensätze. Zuerst den Wert 1, dann den Wert 2.
Das wirft ASP (klassisches VBScript ASP) aus der Bahn.
Haben Sie einen Tipp, wie ich die erste Ergebnismenge unterdrücken kann? Warum ist sie auch mit NOCOUNT vorhanden?
Das Überspringen des ersten Datensatzes in ASP ist keine Option. Ich brauche eine "Nur-Datenbank"-Lösung.
1 Stimmen
Einige Antworten weisen darauf hin, dass Sie von einem SELECT zu einem RETURN wechseln können, aber das ist eine gute Frage - was ist, wenn der verschachtelte Stored Proc SELECT sein muss, weil er von etwas anderem aufgerufen wird, und Sie ihn nicht ändern können? Ich frage mich, ob es möglich ist, eine solche Ergebnismenge zu "verschlucken".