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
Odpowiedz
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
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.
- 1. Jak zatrzymać wykonywanie procedury składowanej przy użyciu programu SQL Server?
- 2. Przekazywanie macierzy do procedury przechowywanej serwera SQL
- 3. VBScript: Przekazywanie parametru z wartością pustą do procedury składowanej?
- 4. Przekazywanie Data Data do procedury składowanej jako argumentu
- 5. Przekazywanie zestawów i opcjonalne parametry do procedury składowanej T-SQL - ASP.NET
- 6. Przekaż wartość parametru tabeli do procedury przechowywanej przy użyciu PetaPoco
- 7. Tworzenie procedury składowanej w ramach innej procedury składowanej w SQL Server 2008
- 8. Wykonywanie procedury składowanej przy użyciu zadania Windows Scheduler
- 9. Szyfrowanie kolumn w aplikacji ASP MVC z programem SQL Server 2016 przy użyciu .net Core/EF Core
- 10. Wywołanie procedury składowanej za pomocą asp.net
- 11. Wydajność SQL Server w ADO.NET a SSMS
- 12. Przekazywanie kolejności dynamicznej według procedury składowanej
- 13. Asynchronizacja procedury składowanej wywołanie w T-SQL
- 14. Problem z numerem wiersza procedury składowanej SQL Server
- 15. Jak uruchomić zadanie SQL Server z procedury składowanej?
- 16. Jak zwrócić wynik procedury składowanej do zmiennej w serwerze sql
- 17. Niepoprawna składnia w pobliżu "JSON" - SQL Server 2016
- 18. Dynamiczny SQL (przekazywanie nazwy tabeli jako parametru)
- 19. Przekazywanie parametru C# DateTime do SQL Server 2005?
- 20. Wywołanie procedury składowanej z parametrem Out przy użyciu PDO
- 21. Czy mogę domyślnie parametr procedury składowanej sql do wyrażenia dynamicznego?
- 22. Przekazywanie ogólnej funkcji jako parametru
- 23. Wywołanie procedury składowanej o typach danych XML
- 24. Serwer SQL Server 2016 dla tablicy liczb całkowitych JSON
- 25. Wykonywanie procedury składowanej jako innego użytkownika pozwolił
- 26. Przekazywanie nazwy pola jako parametru w przechowywanej procedurze MySQL
- 27. Wywoływanie procedury składowanej z parametrami
- 28. NHibernate: przy użyciu C# podwójne z SQL Server jako "pływa"
- 29. Przekazywanie formatu jako parametru do specyfikacji rake
- 30. Jaka jest różnica między transakcją SQL na poziomie procedury składowanej a taką na poziomie SqlConnection?
Bardzo dobre pytanie. Chcę też –
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/) –
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