我有5个相互连接的表,因此每个用户都可以将故事(s)(nvarchar)与图像(nvarchar)插入。我想更改程序,以便每个故事可以插入多个图像。您能帮忙吗(我应该创建两个过程,以及如何更改这一过程)?
完成该操作后,我想创建一个新的过程来获取包含所有图像的故事(nvarchar)。 您能帮我知道如何更改表dbo.Stroies以及其他如何更改表dbo.Stroies的故事,其中包含许多图像吗?
我的程序(只有一张照片):
CREATE PROC UserStory
@UserID [int],
@img [varchar] (max),
@story [nvarchar] (120)
AS
BEGIN
DECLARE @StoryID int, @ImageID int;
INSERT INTO Images ([img]) VALUES (@img)
SET @ImageID = SCOPE_IDENTITY();
INSERT INTO Stories ([StoryText], [imgID2]) VALUES (@story, @ImageID)
SET @StoryID = SCOPE_IDENTITY();
INSERT INTO dbo.imagesInStories (StoryID3, imgID3)
VALUES (@StoryID, @ImageID);
INSERT INTO dbo.Users_Stories (ID2, StoryID2)
VALUES (@UserID, @StoryID);
END
Go
感谢助手:)
答案 0 :(得分:0)
正如我已经在您上一篇文章的评论中试图解释的那样:如果打算将多个图片链接到 Story ,请不要使用{ imgID2
表的{1}}列。除非有特定目的(我们不知道),否则可以删除该列。相反,要添加新的 Story 的第一个 Image ,请使用与您的过程类似的过程:
Stories
要将其他图片添加到 Story 中,应用程序必须已经知道所讨论的 Story 的CREATE PROC AddUserStory
@UserID [int],
@img [varchar] (max),
@story [nvarchar] (120)
AS
BEGIN
DECLARE @StoryID int, @ImageID int;
INSERT INTO Images ([img])
VALUES (@img);
SET @ImageID = SCOPE_IDENTITY();
INSERT INTO Stories ([StoryText])
VALUES (@story);
SET @StoryID = SCOPE_IDENTITY();
INSERT INTO dbo.imagesInStories (StoryID3, imgID3)
VALUES (@StoryID, @ImageID);
INSERT INTO dbo.Users_Stories (ID2, StoryID2)
VALUES (@UserID, @StoryID);
END
,并且可以添加每个单独的 Image 来调用这样的存储过程:
StoryID
最后,要使用所有图像查询所有 User_Stories ,请使用类似以下查询:
CREATE PROC AddImageToStory
@StoryID [int],
@img [varchar] (max),
AS
BEGIN
DECLARE @ImageID int;
INSERT INTO Images ([img])
VALUES (@img);
SET @ImageID = SCOPE_IDENTITY();
INSERT INTO dbo.imagesInStories (StoryID3, imgID3)
VALUES (@StoryID, @ImageID);
END