Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Server中的简单存储过程:插入到桥接表中_Sql_Sql Server - Fatal编程技术网

Sql Server中的简单存储过程:插入到桥接表中

Sql Server中的简单存储过程:插入到桥接表中,sql,sql-server,Sql,Sql Server,我对以下存储过程有问题。只要我不取消最后一次插入的注释,它就可以正常运行。如果取消最后一次插入的注释,则会出现以下错误: Msg 547,16级,状态0,程序 插入RecipeWithTags,第42行 INSERT语句与 外键约束 “FK_Tag_Tag配方”。冲突 发生在数据库“RecipeBox”中, 表“RecipedDetails.Tag”,第列 “tagID”。声明已被修改 终止 为了澄清,我有三个表格: recipe(id, title, introduction, directi

我对以下存储过程有问题。只要我不取消最后一次插入的注释,它就可以正常运行。如果取消最后一次插入的注释,则会出现以下错误:

Msg 547,16级,状态0,程序 插入RecipeWithTags,第42行 INSERT语句与 外键约束 “FK_Tag_Tag配方”。冲突 发生在数据库“RecipeBox”中, 表“RecipedDetails.Tag”,第列 “tagID”。声明已被修改 终止

为了澄清,我有三个表格:

recipe(id, title, introduction, directions)
recipeTag(id, recipeID, tagID)
tag(id, name)
因此,如果我尝试插入到
recipeTag
表中,就会出现上述错误。请告知

谢谢

CREATE PROCEDURE [RecipeDetails].[InsertRecipeWithTags]
/*
    variables that map to columns
*/
@title varchar(50),
@intro varchar(255),
@directions varchar(2200),
@ingredients varchar(2200),
@difficulty varchar(6), /*need check constraint setting difficulty to "beginner" "medium" or "expert"*/
@prepTimeHour tinyint,
@prepTimeMinute tinyint,
@inactiveTimeHour tinyint,
@inactiveTimeMinute tinyint,
@servings tinyint,
@photo varbinary(MAX),
@tagName varchar(50),
@tagdescription varchar(255)

AS

BEGIN
    SET NOCOUNT ON;

    DECLARE @RecipeID int, @TagID int

    INSERT INTO RecipeDetails.Recipe (title, intro,directions, ingredients, difficulty, 
    prepTimeHour, prepTimeMinute, inactiveTimeHour, inactiveTimeMinute, servings, photo)
    VALUES (@title, @intro,@directions, @ingredients, @difficulty, @prepTimeHour, @prepTimeMinute,
    @inactiveTimeHour, @inactiveTimeMinute, @servings, @photo)

    SELECT @RecipeID=SCOPE_IDENTITY()

    SELECT * FROM RecipeDetails.Recipe WHERE recipeID = @RecipeID;

    INSERT INTO RecipeDetails.Tag (name, description)
    VALUES (@tagName, @tagdescription)

    SELECT @TagID=SCOPE_IDENTITY()

    SELECT * FROM RecipeDetails.Tag WHERE tagID = @TagID;

    /*INSERT INTO RecipeDetails.TagRecipe (tagID, recipeID)
    VALUES (@RecipeID, @TagID)*/
END
颠倒顺序

INSERT INTO RecipeDetails.TagRecipe (tagID, recipeID)
VALUES (@TagID, @RecipeID)
你当时走错了方向,是不是颠倒了顺序

INSERT INTO RecipeDetails.TagRecipe (tagID, recipeID)
VALUES (@TagID, @RecipeID)

你当时走错了路

就是这样!谢谢我还是个新手,这对我很有帮助!就这样!谢谢我还是个新手,这对我很有帮助!