Передача данных TVP в SQL-запрос на Python (pyodbc)Python

Программы на Python
Ответить
Anonymous
 Передача данных TVP в SQL-запрос на Python (pyodbc)

Сообщение Anonymous »

Я пытаюсь передать параметр с табличным значением из запроса Python в SQL Server.
Это мое табличное значение, которое я хочу передать в качестве параметра.

Код: Выделить всё

table_values = [
'table_type_name',
'dbo',
(1,None,'Test')
]
Вот синтаксис моих параметров.

Код: Выделить всё

params = [(table_values,None)]
Здесь я выполняю это с соединением pyodbc

Код: Выделить всё

execute(SAVE_QUERY, params)
Вот мой SQL-запрос

Код: Выделить всё

SAVE_QUERY= """
SET NOCOUNT ON;
SET ANSI_NULLS ON;

DECLARE @table_values TABLE = ?;

UPDATE
table_name
SET
contacts.is_active = 0,
FROM
table_name
LEFT JOIN
@table_values CC
ON
CC.id = contacts.id
WHERE
CC.email IS NULL;

"""
выдает следующую ошибку

[42000] [Microsoft][ODBC Driver 18 для SQL Server] [SQL Server]Неправильный синтаксис рядом с '='. (102) (СклExecDirectW); [42000] [Microsoft][Драйвер ODBC 18 для SQL Server][SQL Server]Не удалось подготовить операторы. (8180)

Как лучше всего получить данные TVP в этом запросе и сохранить их в переменной для использования в последующей части запроса.
Я пробовал удалить оператор DECLARE, но он не работает.

Подробнее здесь: https://stackoverflow.com/questions/791 ... hon-pyodbc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»