Создать 1 хранимую процедуру для добавления JSon данных
Ниже схема для таблицы
[tbl_activitylog](
[fk_user_id] [bigint],
[log_type] [nvarchar](50) ,
[data] [nvarchar](max) , // json data will be inserted here
Create procedure [dbo].[spp_add_log]
(
@fk_user_id bigint,
@log_type nvarchar(50),
@data nvarchar(MAX)
)
as
begin
insert into tbl_activitylog (fk_user_id,log_type,data) values (@fk_user_id,@log_type,@data)
end
C# код я использовал Linq к объектам для доступа к хранимой процедуре
List<cls_response_code_data> resp_data_list = db.ExecuteStoreQuery<cls_response_code_data>(
"spp_add_log @fk_user_id,@log_type,@data",
new SqlParameter("@fk_user_id", fk_user_id),
new SqlParameter("@log_type", log_type),
new SqlParameter("@data", data)
).ToList();
Sql сервер не имеют json-тип данных. Вы можете хранить значения json в любом строковом типе, например varchar, nvarchar и т. Д. –
Если я использую varchar, не могу его вставить. вставить в значения table1 (jsonscript) ({'data': '{"UUI": "MXXXXX", "DialStatus": "ответил"}'}) –
Собираетесь ли вы сохранить значение в 2 полях? если да, десериализуйте json и сохраните его в БД. Если нет, вы можете использовать sql-параметр, чтобы избежать значения (и также предотвратить инъекцию sql) – Prisoner