sql >> Database >  >> RDS >> Sqlserver

Opgeslagen procedure - retourneer identiteit als uitvoerparameter of scalair

Een andere optie zou zijn als de retourwaarde voor de opgeslagen procedure (ik raad dit echter niet aan, omdat dat meestal het beste is voor foutwaarden).

Ik heb het opgenomen als zowel wanneer het een enkele rij invoegt in gevallen waarin de opgeslagen procedure werd gebruikt door zowel andere SQL-procedures als een front-end die niet kon werken met OUTPUT-parameters (IBATIS in .NET geloof ik):

CREATE PROCEDURE My_Insert
    @col1            VARCHAR(20),
    @new_identity    INT    OUTPUT
AS
BEGIN
    SET NOCOUNT ON

    INSERT INTO My_Table (col1)
    VALUES (@col1)

    SELECT @new_identity = SCOPE_IDENTITY()

    SELECT @new_identity AS id

    RETURN
END

De uitvoerparameter is gemakkelijker om mee te werken in T-SQL bij het aanroepen van andere IMO-procedures, maar sommige programmeertalen hebben slechte of geen ondersteuning voor uitvoerparameters en werken beter met resultatensets.



  1. Hoe kan ik teken omzetten naar een datumformaat?

  2. Dynamische SQL-uitvoering in SQL Server

  3. hoe toegang te krijgen tot de opdrachtregel voor xampp in Windows

  4. Heeft mysql het equivalent van de analytische functies van Oracle?