Nic*_*las 43 sql-server stored-procedures local-variables
我试图从一个表中获取BrandID的值并将其添加到另一个表中.但我无法让它发挥作用.有谁知道怎么做对吗?
CREATE PROCEDURE AddBrand
AS
DECLARE
@BrandName nvarchar(50),
@CategoryID int,
@BrandID int
SELECT @BrandID = BrandID FROM tblBrand
WHERE BrandName = @BrandName
INSERT INTO tblBrandinCategory (CategoryID, BrandID)
VALUES (@CategoryID, @BrandID)
RETURN
Run Code Online (Sandbox Code Playgroud)
T.J*_*der 44
你有什么问题?你得到了什么错误,或者你得到的结果与你的期望不符?
我可以看到该SP的以下问题,这些问题可能与您的问题有关,也可能与您的问题无关:
)后你有一个无关紧要的@BrandNameSELECT@CategoryID或@BrandName任何地方(他们是局部变量,但你没有为它们赋值)编辑响应您的评论:错误告诉您没有为SP 声明任何参数(但您没有),但是您使用参数调用它.根据你的回复@CategoryID,我猜你想让它成为一个参数而不是一个局部变量.试试这个:
CREATE PROCEDURE AddBrand
@BrandName nvarchar(50),
@CategoryID int
AS
BEGIN
DECLARE @BrandID int
SELECT @BrandID = BrandID FROM tblBrand WHERE BrandName = @BrandName
INSERT INTO tblBrandinCategory (CategoryID, BrandID) VALUES (@CategoryID, @BrandID)
END
Run Code Online (Sandbox Code Playgroud)
然后你会这样称呼:
EXEC AddBrand 'Gucci', 23
Run Code Online (Sandbox Code Playgroud)
...假设品牌名称为'Gucci'且类别ID为23.