SQL Server 2016テーブルにいくつかのJSONオブジェクトを挿入したいとします。JSONオブジェクトをSQL Server 2016にnvarcharとして挿入する方法
次のように私のテーブルの構造は次のとおりです。
field type nullable default
name | nvarchar(max) | true | Null
age | nvarchar(max) | true | Null
homeAddress | nvarchar(max) | true | Null
officeAddress | nvarchar(max) | true | Null
私は私のデータを挿入するために、次のクエリを使用しています:
DECLARE @json NVARCHAR(MAX) = N'{"name":"John Smith","age":32,"homeAddress":{"addr1":"123rd West Street, Willow Apt","addr2":"#55 Suite","zipCode":12345,"city":"Austin","state":"TX"},"officeAddress":{"addr1":"23rd West Street","addr2":"","zipCode":12345,"city":"Austin","state":"TX"}}';
INSERT INTO Employee
SELECT *
FROM OPENJSON(@json)
WITH (name nvarchar(50),
age int,
homeAddress nvarchar(max),
officeAddress nvarchar(max)
);
しかし、唯一name
の値とage
を表に移入されています。 homeAddress
とofficeAddress
の両方の値はNULLです。
クエリに問題がありますか? JSONオブジェクトをnvarcharとして挿入するにはどうすればよいですか?
は同様officeAddress'は単なる文字列ではありません ''としてhomeAddress'両方のように思える - しかし、JSONオブジェクト自体を... –
はいhomeAddressとofficeAddressは、両方のJSONオブジェクトです。私は文字列にオブジェクトを変換するチュートリアルを探していますが、まだ運がありません。 – KnightCavalry