У меня есть две таблицы: пользователь и телефон.Настольный телефон имеет ссылку на стол пользователя.Это позволяет использовать несколько телефонных номеров для каждого пользователя.
Я отправляю информацию на сервер SQL в формате json, но изо всех сил стараюсь сохранить телефонные номера.Это то, что у меня пока есть:
CREATE TABLE [dbo].[user](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[phone](
[id] [int] IDENTITY(1,1) NOT NULL,
[userId] [int] NOT NULL,
[type] [varchar](12) NOT NULL,
[phone] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
DECLARE @jsonVariable NVARCHAR(MAX)
SET @jsonVariable = N'{
"name":"Joe Smith",
"phones":[
{
"phone":"+1 123 123-4567",
"type":"business"
},
{
"phone":"+1 987 987-6543",
"type":"mobile"
}
]
}'
DECLARE @userId int
DECLARE @userName varchar(max) = (SELECT userName FROM OPENJSON (@jsonVariable) WITH (userName varchar(max) N'$.name'))
INSERT INTO [dbo].[user] ([name]) VALUES (@userName)
SET @userId = @@IDENTITY
Вопрос сейчас такой: есть ли что-то вроде процедуры forEach для хранения всех телефонных номеров?