Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric Preview
Sluit voorwaardelijke gegevens af van een query of procedure. RETURN is onmiddellijk en volledig en kan op elk gewenst moment worden gebruikt om af te sluiten van een procedure, batch of instructieblok. Instructies die volgen op RETURN worden niet uitgevoerd.
Transact-SQL syntaxis-conventies
Syntax
RETURN [ integer_expression ]
Arguments
integer_expression
Is de geheel getalwaarde die wordt geretourneerd. Opgeslagen procedures kunnen een geheel getal retourneren aan een aanroepende procedure of een toepassing.
Return Types
Retourneert desgewenst int.
Note
Tenzij anders gedocumenteerd, retourneren alle door het systeem opgeslagen procedures een waarde van 0. Dit duidt op succes en een niet-nulwaarde geeft aan dat de fout is mislukt.
Remarks
Bij gebruik met een opgeslagen procedure kan RETURN geen null-waarde retourneren. Als een procedure een null-waarde probeert te retourneren (bijvoorbeeld met RETURN @status als @status null), wordt er een waarschuwingsbericht gegenereerd en wordt een waarde van 0 geretourneerd.
De retourstatuswaarde kan worden opgenomen in volgende Transact-SQL instructies in de batch of procedure die de huidige procedure heeft uitgevoerd, maar moet worden ingevoerd in de volgende vorm: EXECUTE @return_status = <procedure_name>
Examples
A. Terugkeren vanuit een procedure
In het volgende voorbeeld ziet u of er geen gebruikersnaam is opgegeven als parameter wanneer findjobs deze wordt uitgevoerd, RETURN de procedure wordt afgesloten nadat een bericht naar het scherm van de gebruiker is verzonden. Als er een gebruikersnaam is opgegeven, worden de namen van alle objecten die door deze gebruiker in de huidige database zijn gemaakt, opgehaald uit de juiste systeemtabellen.
CREATE PROCEDURE findjobs @nm sysname = NULL
AS
IF @nm IS NULL
BEGIN
PRINT 'You must give a user name'
RETURN
END
ELSE
BEGIN
SELECT o.name, o.id, o.uid
FROM sysobjects o INNER JOIN master..syslogins l
ON o.uid = l.sid
WHERE l.name = @nm
END;
B. Statuscodes retourneren
In het volgende voorbeeld wordt de status gecontroleerd op de id van een opgegeven contactpersoon. Als de staat Washington (WA) is, wordt een status 1 geretourneerd.
2 Anders wordt geretourneerd voor een andere voorwaarde (een andere waarde dan WA voor StateProvince of ContactID die niet overeenkomt met een rij).
USE AdventureWorks2022;
GO
CREATE PROCEDURE checkstate @param VARCHAR(11)
AS
IF (SELECT StateProvince FROM Person.vAdditionalContactInfo WHERE ContactID = @param) = 'WA'
RETURN 1
ELSE
RETURN 2;
GO
In de volgende voorbeelden ziet u checkstatede retourstatus van het uitvoeren. De eerste toont een contactpersoon in Washington; de tweede contactpersoon niet in Washington; en de derde, een contactpersoon die niet geldig is. De @return_status lokale variabele moet worden gedeclareerd voordat deze kan worden gebruikt.
DECLARE @return_status INT;
EXEC @return_status = checkstate '2';
SELECT 'Return Status' = @return_status;
GO
Hier is het resultatenoverzicht.
Return Status
-------------
1
Voer de query opnieuw uit en geef een ander contactnummer op.
DECLARE @return_status INT;
EXEC @return_status = checkstate '6';
SELECT 'Return Status' = @return_status;
GO
Hier is het resultatenoverzicht.
Return Status
-------------
2
Voer de query opnieuw uit en geef een ander contactnummer op.
DECLARE @return_status INT
EXEC @return_status = checkstate '12345678901';
SELECT 'Return Status' = @return_status;
GO
Hier is het resultatenoverzicht.
Return Status
-------------
2
See Also
ALTER PROCEDURE (Transact-SQL)
PROCEDURE MAKEN (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
EXECUTE (Transact-SQL)
SET @local_variable (Transact-SQL)
THROW (Transact-SQL)