[英]Is it good to insert 2 table at a time by using single stored procedure
我有2個表Account
和Image
,我想在用戶創建他的帳戶時插入這兩個表。 下面的存儲過程是否適合將數據插入到2個表中,或者還有其他更好的方法嗎?
Create procedure spAccountImageInsert
(@AccID int,
@AccName varchar(50),
@Email money,
@ImageID int,
@ImageFile image)
as
begin
Insert into Account(AccID, AccName, Email)
values(@AccID, @AccName, @Email)
Insert into Image(AccID, ImageID, ImageFile)
values(@AccID, @ImageID, @ImageFile)
end
這很好,但永遠記得這最終會成長。 如果其他開發人員觸摸您的代碼,這可能會變得難看。
您可以做的是創建兩個存儲過程,一個用於插入帳戶,另一個用於插入圖像。 這至少可以讓你在實體之間進行某種分離(這允許你重用名稱並避免各種沖突,更不用說你可能想要在你的sproc中做的其他事情了)。 插入帳戶后,您可以調用存儲過程來插入圖像,如下所示:
CREATE PROCEDURE InsertAccount
@AccountID int
AS BEGIN
--first insert into an account
INSERT INTO ... VALUES ...
--then insert into an image
EXEC dbo.InsertImage
END
或者更好的是只執行每個存儲過程的存儲過程:
EXEC dbo.InsertAccount
EXEC dbo.InsertImage
並且不要忘記觸發器......這也可能是一種可能的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.