Запустите для l oop с переменными из списка в SQL - PullRequest
0 голосов
/ 26 апреля 2020

я пытаюсь выполнить этот запрос с несколькими table_name, column_name, int1 и int2.

UPDATE table_name
SET column_name = REPLACE(column_name, "int1", "int2")
WHERE column_name like "int1%"

Есть ли простой способ создать список и запустить для l oop, как на других языках ?

Вот простой python сценарий того, что я хотел бы сделать в SQL:

list1 = ["foo", "bar"]
list2 = ["foo2", "bar2"]
list3 = [1, 2]
list4 = [3, 4]
for i in len(list1):
     print(list1[i],list2[i],list3[i],list4[i])

Извините, я очень плохо знаком с SQL и мог не могу найти что-то подобное в другом месте.

Спасибо за любой совет.

1 Ответ

1 голос
/ 26 апреля 2020

Вы можете сгенерировать его как:

SELECT 
    query_to_run = FORMATMESSAGE(
'UPDATE %s.%s
 SET %s = REPLACE(%s, ''int1'', ''int2'')'
    ,QUOTENAME(TABLE_SCHEMA)
    ,QUOTENAME(TABLE_NAME)
    ,QUOTENAME(COLUMN_NAME)
    ,QUOTENAME(COLUMN_NAME) 
   )
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = ?
  AND COLUMN_NAME LIKE 'int1%';

Подобный шаблон T SQL для генерации и запуска кода: Найти ненулевые столбцы в SQL Сервер в таблице

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...