我有三张桌子:
我使用了以下SQL Server存储过程" Addp"在被调用时插入p_name
和p_description
。
CREATE PROCEDURE AddP
(@name CHAR(50),
@description VARCHAR(255))
AS
BEGIN
DECLARE @PCount INT
SELECT @PCount = Count(P_ID)
FROM P
WHERE P_Name= @name
IF @PCount = 0
BEGIN
INSERT INTO P(P_Name, P_Description)
VALUES(@name, @description)
END
RETURN @@IDENTITY
END
现在,我想创建另一个程序,我可以插入" v_id"和成本以及" Addp"存储过程。我的第二个SP看起来如下。我的问题是如何将我的第一个存储过程调用到第二个新的存储过程。因此,当我执行第二个存储过程时,我应该能够插入p_name,p_description,vi,一次性花费所有内容吗?
CREATE PROCEDURE AddPWithV (@vi int, @cost decimal(12,4))
AS
BEGIN
INSERT INTO PV (V_ID, Cost)
VALUES(@vi, @cost)
Return @@IDENTITY
END;
我是存储过程的新手。所以,请引导我解释一下。 任何帮助表示赞赏! 提前谢谢!
答案 0 :(得分:0)
宣布更多变量 如下所示:
DECLARE @_vid INT
DECLARE @_cost numeric(18,2) // as per your column daya type
Select @_vid =vid from TB3 where name =@name ;
Select @_cost = cost from TB2 where
P_id in (select p_id from TB1 where name =@name );
现在您可以在任何地方插入两个值...