簡體   English   中英

SQL Server 存儲過程。 插入表

[英]SQL Server stored procedure. insert into table

我遇到的問題是,需要使用存儲過程添加到我的表中的 2 個參數是來自其他 2 個表的值,我需要將這 2 個值更改為正確的值。

我試圖尋找我遇到的問題,但沒有成功。

涉及 3 個表: MovieAgeRestrictionPrice

Movie

  • 電影 ID , 整數 , PK
  • 電影,varchar(50)
  • 持續時間,時間(0)
  • AgeRestrictionID, int, FK - 與 AgeRestriction 表中的 ID 相關聯
  • PriceID, int, FK - 與價格表中的 ID 相關聯

AgeRestriction

  • AgeRestrictionID , 整數, PK
  • 年齡限制,整數

Price :

  • 價格 ID、整數、PK
  • 價格,內部

的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM