その 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
...ブランド名が「グッチ」で、カテゴリ ID が 23 であると仮定します。