SQL Server: Возвратите uniqueidentifier из хранимой процедуры

Я могу возвратить UNIQUEIDENTIFIER из хранимой процедуры с помощью Оператора возврата или являюсь этим только при помощи оператора вывода?

т.е. возвратить PersonID UNIQUEIDENTIFIER:

CREATE PROCEDURE CreatePerson
    @Name NVARCHAR(255), 
    @Desc TEXT
AS
DECLARE @Count INT
DECLARE @JobFileGUID UNIQUEIDENTIFIER 

-- Check if job exists?
SET @Count = (SELECT COUNT(Name) AS Name FROM Person WHERE Name=@Name)

IF @Count < 1
BEGIN
    SET @PersonGUID = NEWID();

    INSERT INTO Person 
        (PersonID, Name, [Desc]) 
        VALUES (@PersonGUID, @Name, @Desc)

END

    SELECT @PersonGUID = Person.PersonID 
    FROM Person
    WHERE Name = @Name

    RETURN @PersonGUID
GO

Спасибо

5
задан Belliez 11 January 2010 в 09:57
поделиться

2 ответа

В сохраненной процедуре - только с помощью оператора OUTPUT. В функции - возврат.

7
ответ дан 18 December 2019 в 14:46
поделиться

Использование:

CREATE PROCEDURE CreatePerson
    @Name NVARCHAR(255), 
    @Desc TEXT,
    @PersonGUID UNIQUEIDENTIFIER OUTPUT
AS
BEGIN

   SET @PersonGUID = ...

END

Как звонить:

DECLARE 
    @name NVARCHAR(255),
    @desc TEXT,
    @personGUID UNIQUEIDENTIFIER

SET @name = 'Bob'
SET @desc = 'One handsome man.'

EXEC [Database].[schema].CreatePerson @name, @desc, @personGUID OUTPUT
7
ответ дан 18 December 2019 в 14:46
поделиться