[英]SQL Server stored procedure. insert into table
我遇到的問題是,需要使用存儲過程添加到我的表中的 2 個參數是來自其他 2 個表的值,我需要將這 2 個值更改為正確的值。
我試圖尋找我遇到的問題,但沒有成功。
涉及 3 個表: Movie
、 AgeRestriction
和Price
。
表Movie
表AgeRestriction
:
表Price
:
的2個值,我添加是值( AgeRestriction, int
從) AgeRestriction
表和( Price, int
從) Price
表。
這就是我需要將獲得的值插入表Movies
。
public void InsertMovie(Movie movie)
{
using (SqlConnection conn = CreateConnection())
{
try
{
SqlCommand cmd = new SqlCommand("dbo.AddMovie", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Movie", SqlDbType.NVarChar, 50).Value = movie._movie;
cmd.Parameters.Add("@Duration", SqlDbType.Time, 0).Value = movie.Duration;
cmd.Parameters.Add("@AgeRestriction", SqlDbType.Int, 50).Value = movie.AgeRestriction;
cmd.Parameters.Add("@Price", SqlDbType.Decimal, 50).Value = movie.Price;
conn.Open();
cmd.ExecuteNonQuery();
}
catch
{
throw new ApplicationException("An error occured in the data access layer.");
}
}
}
所以,我正在嘗試創建一個可以完成所有這些操作的存儲過程,但到目前為止還沒有成功,所以我在這里問你們..
好的,這就是我嘗試過的:
ALTER PROCEDURE [dbo].[AddMovie]
@Movie varchar(50),
@Duration time(0),
@AgeRestrictionID int,
@PriceID int,
@AgeRestriction int,
@Price int
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION
INSERT INTO Movie (Movie, Duration, AgeRestrictionID, PriceID)
VALUES (@Movie, @Duration, @AgeRestrictionID, @PriceID)
SELECT Movie, Duration, AgeRestriction, Price
FROM Movie AS M
INNER JOIN AgeRestriction as Ag ON M.AgeRestrictionID = Ag.AgeRestrictionID
INNER JOIN Price as P ON M.PriceID = P.PriceID
COMMIT
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.