我可以看到该 SP 存在以下问题,这些问题可能与您的问题有关,也可能与您的问题无关:
- 你有一个无关紧要的事
)
在@BrandName
你的SELECT
(最后)
- 你没有在任何地方设置
@CategoryID
或@BrandName
任何东西(它们是局部变量,但你没有为它们赋值)
在评论中,您说在修复后)
您会收到错误:
过程 AddBrand 没有提供参数和参数。
这告诉您您没有为 SP 声明任何参数,但您使用参数调用它。根据您对 的回复@CategoryID
,我猜您希望它是一个参数而不是局部变量。试试这个:
CREATE PROCEDURE AddBrand
@BrandName nvarchar(50), -- These are the
@CategoryID int -- parameter declarations
AS
BEGIN
DECLARE @BrandID int
SELECT @BrandID = BrandID FROM tblBrand WHERE BrandName = @BrandName
INSERT INTO tblBrandinCategory (CategoryID, BrandID) VALUES (@CategoryID, @BrandID)
END
然后你会这样称呼它:
EXEC AddBrand 'Gucci', 23
或这个:
EXEC AddBrand @BrandName = 'Gucci', @CategoryID = 23
...假设品牌名称为“Gucci”,类别 ID 为 23。