如何在一个存储过程中将数据插入多个表中? [英] how can i insert data in multiple table in one store procedure?

查看:63
本文介绍了如何在一个存储过程中将数据插入多个表中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨 我想在多表中的一个按钮上单击以插入数据

我有像
这样的桌子
1)Tbl_Product
pid,
pname,


2)Tbl_Schedule
sid,
pid,
开始日期,
已关闭,

3)Tbl_Brand
出价
pid,
brandName

现在我要在这三个表中插入
我使用过像
这样的存储过程

 插入 插入 Tbl_Product ( @ pname );

声明 @pid = @@ identity;

插入 插入 Tbl_Schedule ( @ pid  @ sdate  @ cdate );

插入 插入 Tbl_Brand ( @ pid  @ brandName ); 



帮帮我
谢谢....

解决方案

HI,
这会给一个想法

 创建 过程 [dbo].[usp_Tbl_Product_Insert]
(
  @ pnam   varchar ( 50 ), @ sid   INT  @ startdate   DATETIME  @关闭日期  DATETIME ,
)
 AS 
开始
 SET  没有计数 打开开始 交易
插入  INTO  Tbl_Produc
(
   颜色名称
 )

(
     @ pnam 
 )
声明  @ pid   INT 
 SET   @ pid  =  SCOPE_IDENTITY ()
 IF   @@ ERROR  =  0 
开始
插入  INTO  Tbl_Schedule
(COL NAME)

( @ pid  @ startdat  @ closedate )

 iF   @@ ERROR  =  0 
开始
插入  INTO  Tbl_Brand
(
颜色名称
)

(
 @ pid  @ brandName 
)
  END 

 IF   @@ ERROR  =  0 
开始
提交 交易
 END 
 ELSE 
开始
回滚 交易
 END 
 END 
 ELSE 
开始
回滚 交易
 END 
 
 END  



最好的问候
米特瓦里(M.Mitwalli)


hi i want to insert data on one button click in multile tables

i have tables like

1) Tbl_Product
pid,
pname,


2)Tbl_Schedule
sid,
pid,
startdate,
closedate,

3)Tbl_Brand
bid
pid,
brandName

now i want to insert in this three table
i used storeprocedure like

insert into Tbl_Product values (@pname);

declare @pid=@@identity;

insert into Tbl_Schedule values (@pid,@sdate,@cdate);

insert into Tbl_Brand values (@pid,@brandName);



help me
thanks....

解决方案

HI ,
This will give an idea

CREATE PROCEDURE [dbo].[usp_Tbl_Product_Insert]
(
 @pnam varchar(50) ,@sid INT,
 @startdate DATETIME,
 @closedate DATETIME,  
)
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION 
INSERT INTO Tbl_Produc
(
   COL NAME
 )
values
( 
    @pnam
 )
DECLARE @pid  INT 
SET @pid  = SCOPE_IDENTITY()
IF @@ERROR = 0
		BEGIN 
		INSERT INTO Tbl_Schedule
		(COL NAME)
		VALUES
		(@pid ,@startdat,@closedate )
		
		iF @@ERROR = 0
			BEGIN
			 INSERT INTO Tbl_Brand
			(
				COL NAMES
		    ) 
				VALUES
			(
				@pid,@brandName
			 )
 		 END	
				
				IF @@ERROR = 0
				BEGIN			 
					COMMIT TRANSACTION
				END
			ELSE
				BEGIN			 
					ROLLBACK TRANSACTION		
				END
		END
ELSE
		BEGIN
			ROLLBACK TRANSACTION
		END
 
END



Best Regards
M.Mitwalli


这篇关于如何在一个存储过程中将数据插入多个表中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆