2016-12-27 13 views
8

Czy ktoś może podać przykład jak przekazać typ JSON jako parametr do procedury składowanej SQL Server 2016 przy użyciu ADO.Net w C# ASP.Net Projekt Core Web Api? Chcę zobaczyć przykład procedury składowanej SQL Server 2016 i przekazać typ JSON w C# ASP.Net Core Web Api.Przekazywanie typu JSON jako parametru do procedury składowanej SQL Server 2016 przy użyciu ADO.Net w projekcie ASP.Net Core

+2

Bardzo dobre pytanie. Chcę też –

+0

AFIAK, serwer Sql 2016 nie ma typu danych JSON, więc po prostu przekazujesz swój json do procedury składowanej jako varchar. Wewnątrz procedury przechowywanej można użyć funkcji [wbudowanych funkcji] (https://msdn.microsoft.com/en-us/library/dn921897.aspx), która wie, jak obsługiwać dane JSON. Możesz zobaczyć przykład kodu w [tym artykule.] (Https://blogs.msdn.microsoft.com/sqlserverstorageengine/2015/09/08/passing-arrays-to-t-sql-procedures-as-json/) –

+0

W twoim pytaniu są dwa zdania i obaj mówią * dokładnie * to samo. A potem tytuł twojego pytania mówi dokładnie to samo * ponownie *. Proszę posprzątaj swoje pytanie. – Tomalak

Odpowiedz

7

Nie ma numeru json data type w sewerze sql, można po prostu wysłać swoją json jako do procedury przechowywanej.

Jeśli chcesz zmapować plik json do tabeli, możesz użyć polecenia OPENJSON do konwersji danych na rows i columns.

CREATE PROCEDURE SaveJSON 
@pID int, 
@pJson nvarchar(max) 

AS 
BEGIN 

INSERT INTO [YourTable] 
     ([ID] 
     ,[JSONData]) 
VALUES 
     (@pID 
     ,@pJson) 
END 

Jeśli chcesz mapować obiekty JSON z tabeli można to zrobić

//json would be something like this 
[ 
{ "id" : 2,"name": "John"}, 
{ "id" : 5,"name": "John"} 
] 

INSERT INTO YourTable (id,Name) 
SELECT id, name 
FROM OPENJSON(@pJson) 
WITH (id int, 
name nvarchar(max)) 

Here jest bardzo dobry i szczegółowy artykuł, który daje szczegółowe pomysł, aby poradzić sobie z json data

0

SQL Serwer 2016 ma natywną obsługę JSON - istnieje nowy typ danych JSON (oparty na nvarchar), a także polecenie FOR JSON do konwersji danych wyjściowych z zapytania do formatu JSON

Microsoft nie obejmują oddzielny typ danych JSON - zamiast tego, istnieje szereg funkcji JSON (do spakowania się wiersze bazy danych do JSON, lub do analizowania JSON do danych relacyjnych), które działają na kolumnach typu NVARCHAR(n)

Jeśli masz tekst JSON, możesz wyodrębnić dane z JSON lub sprawdzić, czy JSON jest poprawnie sformatowany za pomocą wbudowanych funkcji JSON_VALUE, JSON_QUERY i . W przypadku bardziej zaawansowanych zapytań i analiz funkcja OPENJSON może przekształcić tablicę obiektów JSON w zestaw wierszy. Każde zapytanie SQL może zostać wykonane na zwróconym zestawie wyników. Wreszcie istnieje klauzula FOR JSON, która umożliwia formatowanie wyników zapytania jako tekst JSON.

Polecam więc użyć NVARCHAR(MAX) jako parametru procedury składowanej.

Powiązane problemy