Как вставить TVP в таблицу со столбцом Identity, используя узел mssql? - PullRequest
0 голосов
/ 28 мая 2019

Моя машинная функция azure взаимодействует с моей базой данных SQL Server.Я могу использовать TVP для вставки данных в базу данных, за исключением случаев, когда тип принимающей таблицы содержит столбец IDENTITY.В моей таблице 3 столбца, первый из которых - IDENTITY.

Когда я передаю TVP с 3 столбцами, я получаю следующую ошибку:

ВСТАВИТЬ в столбец идентификаторов, не допускается для переменных таблицы

Когда япропустите столбец идентификаторов из TVP и отправьте только оставшиеся 2 столбца, после чего он выдаст следующую ошибку:

Попытка передать табличный параметр с двумя столбцами, в которых соответствующий пользовательДля определенного типа таблицы требуется 3 столбца.

Это определение пользовательского типа таблицы на SQL Server:

[PropertyOrder] [INT] IDENTITY(1,1) NOT NULL,
[Name] [NVARCHAR](200) NOT NULL,
[Value] [NVARCHAR](MAX) NULL

TVP, созданный в TypeScript:

const tvp = new Table()
tvp.columns.add('PropertyOrder', Int)
tvp.columns.add('Name', NVarChar(200))
tvp.columns.add('Value', NVarChar(MAX))

tvp.rows.add(1, 'TestName', 'TestValue')

версии программного обеспечения

  • NodeJS: 8.10
  • node-mssql: 5.1.0
  • SQL Server: база данных SQL Azure
...