Я могу возвратить 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
Спасибо
В сохраненной процедуре - только с помощью оператора OUTPUT. В функции - возврат.
Использование:
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