Я хочу вставить newid()
в таблицу.Он не входит в сам объект JSON, поэтому мне нужно как-то передать его.Кажется, я не могу этого сделать ...
declare @jsonString nvarchar(max),
--sample incoming data, JSON object
set @jsonString = '{
"PosTitle": "Tech",
"PosCode": "699887",
"FileName": "clickme.exe",
}'
Я могу успешно проанализировать строку JSON и вставить ее во временную таблицу:
--establish temp table
CREATE TABLE #tblDestination(
[id] [uniqueidentifier] default newsequentialid(),
[PosTitle] [varchar](80) NULL,
[PosCode] [varchar](5) NULL,
[FileName] [varchar](60) NULL,
)
--parse the JSON string
--and insert it into the temp table
insert into #tblDestination
select *
from openjson(@jsonString, '$')
with
(
newid(), --I need to insert a newid() into the [id column]
PosTitle varchar(80) '$.PosTitle',
PosCode varchar(5) '$.PosCode',
[FileName] varchar(60) '$.FileName',
)
Я могу ее получитьна работу ... Столбцы в источнике должны идеально совпадать с местом назначения.У источника нет newid()
, поэтому мне нужно собрать его и передать его ... но я не могу понять, как это сделать.
Насколько я понимаю, with
часть CTE.
Я пытался избежать необходимости объявлять переменную для каждого из ключей / значений и вручную извлекать каждую из них через select JSON_VALUE
.