如何将包含对象的数组插入一列

时间:2018-08-31 21:44:11

标签: sql sql-server

我有一个现有的数据库,该数据库的重要列称为InDays,数据类型为nvarchar(150)

在现有数据中,有一个Array,里面有一个Object,看起来像这样:

InDays
----------------------------------------------------------------------------------------------
[{ "day": 1, "from": "12:00am", "to": "2:00am"},{ "day": 4, "from": "2:00am", "to": "4:00am"}]

里面的Objects可以不止一个。

我尝试按原样插入它,但是得到[object Object]而不是值。

编辑- 插入代码。

DECLARE @InDays nvarchar(150) = [{ "day": 1, "from": "12:00am", "to": "2:00am"},{ "day": 4, "from": "2:00am", "to": "4:00am"}]

INSERT INTO Course (
        InDays
    )
    VALUES
    (
        @InDays
    )

2 个答案:

答案 0 :(得分:1)

  

我有...一个重要的列,它是... nvarchar(150)数据类型。

因此在插入时使用该类型:

DECLARE @InDays nvarchar(150) = '[{ "day": 1, "from": "12:00am", "to": "2:00am"},{ "day": 4, "from": "2:00am", "to": "4:00am"}]'

尽管我怀疑如果您最终可以使用其中的150个,这是否足够大。假设它是典型的,那么只执行第一个对象就行了,仅在数组的第5个成员上就已经用完了空间。

答案 1 :(得分:0)

面向未来的探险者

我只需要将JSON格式转换为String

通过JSON.stringify([{"value": value}])完成此操作,然后将其直接存储到sql database

然后JSON.parse("value")再次将其转换为JSON