使用存储过程和DataAccessLayer将数据插入多个值表

时间:2018-06-28 22:32:50

标签: c# sql sql-server database

我正在尝试测试如何将多个值添加到接受多个值的列中。

例如,我有两个表

Table 1: contains `ID` (`int`) primary, `Name` (`varchar`)
Table 2: contains `ID` (reference to Table 1's `ID`), `Image` (`image`)

我创建了这些表,可以将数据插入表1,但是如何让它插入表2(Image)的多值列中?

我可以拥有Id并添加想要的图像数量,我尝试使用存储过程,使用insert,但是失败了,因为我想使用where语句在insert中不起作用来检查ID与表1中的ID是否相同

有关更多示例。

ID: 1, Name: Willam, Image:[AnyImage] (More than 1 image)
ID: 2, Name: Edi, Image[Anyknownimage], Image[AnyNewImage] etc...

有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

我认为我已经找到解决问题的方法。 我应该做的方法是在插入之前将Identity_insert设置为on,然后在过程中插入后将其关闭。 在Set插入之前。

    CREATE proc [dbo].[Add_Image]
@ID int,
@Image image
as
Insert into ImageContainer(ID,Image) values(@ID,@Image)

将表格更改为:

 CREATE proc [dbo].[Add_Image]
@ID int,
@Image image
as
SET IDENTITY_INSERT ImageContainer ON
Insert into ImageContainer(ID,Image) values(@ID,@Image)
SET IDENTITY_INSERT ImageContainer off

谢谢大家