SET @CategoryID = @@IDENTITY书上写得太简单请给解释一下。(最好全都解释)
CREATE PROCEDURE sp_Forums_InsertCategory
@CategoryName varchar(100),
@CategoryImageUrl varchar(100),
@CategoryPosition int,
@CategoryID int OUTPUT
AS
DECLARE @CurrID int
-- see if the category already exists
SELECT @CurrID = CategoryID
FROM Forums_Categories
WHERE CategoryName = @CategoryName
-- if not, add it
IF @CurrID IS NULL
BEGIN
INSERT INTO Forums_Categories
(CategoryName, CategoryImageUrl, CategoryPosition)
VALUES (@categoryName, @CategoryImageUrl, @CategoryPosition)
SET @CategoryID = @@IDENTITY
IF @@ERROR > 0
BEGIN
RAISERROR ('Insert of Category failed', 16, 1)
RETURN 99
END
END
ELSE
BEGIN
SET @CategoryID = -1
END
GO
在我理解declare声明的变量 和 output声明的是一样的。这里分开用了为什么。是不是我理解有误?
if @@error<>0 是说发生错误情况下。Return在这里有什么意义?
最后,SET @CategoryID = -1 表示什么意思?