Bel*_*iez 5 sql t-sql sql-server
我可以使用RETURN语句从存储过程返回UNIQUEIDENTIFIER,还是仅使用OUTPUT语句?
即返回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
Run Code Online (Sandbox Code Playgroud)
谢谢
使用:
CREATE PROCEDURE CreatePerson
@Name NVARCHAR(255),
@Desc TEXT,
@PersonGUID UNIQUEIDENTIFIER OUTPUT
AS
BEGIN
SET @PersonGUID = ...
END
Run Code Online (Sandbox Code Playgroud)
怎么称呼:
DECLARE
@name NVARCHAR(255),
@desc TEXT,
@personGUID UNIQUEIDENTIFIER
SET @name = 'Bob'
SET @desc = 'One handsome man.'
EXEC [Database].[schema].CreatePerson @name, @desc, @personGUID OUTPUT
Run Code Online (Sandbox Code Playgroud)