Я пытаюсь получить значение от 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
Что не так с тем, что у вас есть? Какую ошибку вы получаете, или какой результат не соответствует вашим ожиданиям?
Я вижу следующие проблемы с этим SP, которые могут иметь или не иметь отношения к вашей проблеме:
)
после @BrandName
в вашем SELECT
(в конце) @CategoryID
или @BrandName
где угодно (это локальные переменные, но вы не присваиваете им значения) Edit Ответ на ваш комментарий: Ошибка говорит вам, что у вас нет t объявил любые параметры для 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
Затем вы бы назвали это так:
EXEC AddBrand 'Gucci', 23
... предполагая, что торговая марка была «Gucci», а идентификатор категории - 23.