Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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
将最后一个id为的关系数据插入SQL Server 2008_Sql_Database_Sql Server 2008 - Fatal编程技术网

将最后一个id为的关系数据插入SQL Server 2008

将最后一个id为的关系数据插入SQL Server 2008,sql,database,sql-server-2008,Sql,Database,Sql Server 2008,我有一个电影数据库,这个数据库包含几个带列的表,我正在尝试插入带有关系数据的新电影。我试图找出如何将电影放入数据库,并在电影的物理位置设置一个特定的存储。想象一下电影租赁系统,在那里你想搜索一部特定的电影,并找到哪些商店有这部特定电影的存货 我想插入一部新电影,并将库存水平设置为现有商店id。我应该能够在以后搜索此电影,并能够读取每个商店id的库存水平 这是我迄今为止尝试过的sql查询之一 BEGIN TRANSACTION INSERT INTO [dbo].[movies]

我有一个电影数据库,这个数据库包含几个带列的表,我正在尝试插入带有关系数据的新电影。我试图找出如何将电影放入数据库,并在电影的物理位置设置一个特定的存储。想象一下电影租赁系统,在那里你想搜索一部特定的电影,并找到哪些商店有这部特定电影的存货

我想插入一部新电影,并将库存水平设置为现有商店id。我应该能够在以后搜索此电影,并能够读取每个商店id的库存水平

这是我迄今为止尝试过的sql查询之一

BEGIN TRANSACTION
    INSERT INTO [dbo].[movies]
           ([titel], [rating], [genre], [releasedatum],
            [land], [sprak], [DVD_Bluray], [imdb_id])
    VALUES
          ('Resident Evil 2', 4, 'Action', '2016-06-10',
           'USA', 'Engelska', 'DVD', '123456987')

SELECT prodID 
FROM dbo.movies

INSERT INTO dbo.lagerstatus_butiker (butiksid) VALUES (35)

COMMIT TRANSACTION
我的表
Movies
包含有关电影的信息,每个电影的主键是
prodID
,它是自动递增的,
lagerstatus\u butiker
是每个商店的库存水平
Butiksid
storeID
并且是名为“butiker”(瑞典语存储)的单独表中的主键。我有多个存储区,具有唯一的主键ID

如何在
电影
中插入新行,同时使其属于具有库存级别的特定商店

我的电影表如下所示:

[titel]
[writer]
[rating]
[genre]
[prodID] <--- Primary key
[releasedatum]
[land]
[sprak]
[DVD_Bluray]
[imdb_id]
[director_id] <--- Foreign key
[butik_id] <--- Foreign key
[lagerstatus]
[actorID] <-- Foreign key
[butiksid] <-- Foreign key
[prodID] <-- Foreign key
[lagerstatus]
[butik_namn]
[butiksid] <-- Primary key
[gatuadress]
[postnr]
[postort]
[telnr]
BEGIN TRANSACTION
    INSERT INTO [dbo].[movies]
           ([titel], [rating], [genre], [releasedatum],
            [land], [sprak], [DVD_Bluray], [imdb_id])
    VALUES
          ('Resident Evil 2', 4, 'Action', '2016-06-10',
           'USA', 'Engelska', 'DVD', '123456987')

    DECLARE @NewID INT

    -- get newly created ID
    SELECT @NewID = SCOPE_IDENTITY();
最后,我的
butiker
(stores)表如下所示:

[titel]
[writer]
[rating]
[genre]
[prodID] <--- Primary key
[releasedatum]
[land]
[sprak]
[DVD_Bluray]
[imdb_id]
[director_id] <--- Foreign key
[butik_id] <--- Foreign key
[lagerstatus]
[actorID] <-- Foreign key
[butiksid] <-- Foreign key
[prodID] <-- Foreign key
[lagerstatus]
[butik_namn]
[butiksid] <-- Primary key
[gatuadress]
[postnr]
[postort]
[telnr]
BEGIN TRANSACTION
    INSERT INTO [dbo].[movies]
           ([titel], [rating], [genre], [releasedatum],
            [land], [sprak], [DVD_Bluray], [imdb_id])
    VALUES
          ('Resident Evil 2', 4, 'Action', '2016-06-10',
           'USA', 'Engelska', 'DVD', '123456987')

    DECLARE @NewID INT

    -- get newly created ID
    SELECT @NewID = SCOPE_IDENTITY();
[butik_namn]

[butiksid]当您将一行插入到具有
标识
列的表中时,您可以像下面这样获取新创建的标识值:

[titel]
[writer]
[rating]
[genre]
[prodID] <--- Primary key
[releasedatum]
[land]
[sprak]
[DVD_Bluray]
[imdb_id]
[director_id] <--- Foreign key
[butik_id] <--- Foreign key
[lagerstatus]
[actorID] <-- Foreign key
[butiksid] <-- Foreign key
[prodID] <-- Foreign key
[lagerstatus]
[butik_namn]
[butiksid] <-- Primary key
[gatuadress]
[postnr]
[postort]
[telnr]
BEGIN TRANSACTION
    INSERT INTO [dbo].[movies]
           ([titel], [rating], [genre], [releasedatum],
            [land], [sprak], [DVD_Bluray], [imdb_id])
    VALUES
          ('Resident Evil 2', 4, 'Action', '2016-06-10',
           'USA', 'Engelska', 'DVD', '123456987')

    DECLARE @NewID INT

    -- get newly created ID
    SELECT @NewID = SCOPE_IDENTITY();
现在,您可以使用该ID填写其他表格:


[butik_id]在电影中,它的含义是什么?为什么不在插入中设置?您可以使用存储过程吗?@tgolisch可以,我可以使用过程。你有好的吗?@Serg[butik_id]在英语中的意思是store_id。我试图与“butiker”表(stores)建立直接关系。我可能需要重新思考,并根据社区能想出的想法来改变这一点。:)我的意思是,
lagerstatus
是m-m
butiker
movies
的关系。那么,在许多可能的
butiker
s
电影中,哪一部呢。但是K_id
是指?啊,这看起来是合法的。当我回到数据库时,我会尝试一下,SCOPE\u IDENTITY相当于MySQL的最后一个\u INSERT\u ID,那么?@ChristerJohansson:因为我不知道MySQL,所以我不能真正评论-
SCOPE\u IDENTITY
只返回插入当前作用域的最后一个IDENTITY值