Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Съхранена процедура - връщане на идентичност като изходен параметър или скалар

Друг вариант би бил като връщана стойност за съхранената процедура (въпреки това не предлагам това, тъй като обикновено това е най-доброто за стойностите на грешки).

Включих го като и двете, когато вмъква един ред в случаите, когато съхранената процедура се консумира както от други SQL процедури, така и от преден край, който не може да работи с OUTPUT параметри (IBATIS в .NET вярвам):

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

Изходният параметър е по-лесен за работа в T-SQL при извикване от други съхранени процедури IMO, но някои езици за програмиране имат лоша или никаква поддръжка за изходни параметри и работят по-добре с набори от резултати.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да докирам/раздокарам заявката на Windows и други раздели в SQL Server Management Studio (SSMS) - SQL Server/TSQL Урок, част 21

  2. Какво представляват покриващите индекси и покрити заявки в SQL Server?

  3. Клаузата WHERE е по-добре да се изпълни преди IN и JOIN или след това

  4. Обхват на временните таблици в SQL Server

  5. Промяна на колона:null на not null