Я создаю хранимую процедуру для автоматической подготовки кода компонента C # для переноса данных.Подробнее об этом решении вы можете найти здесь Как выполнить хранимую процедуру для ODBC Snowflake Destinastion? .
Проблема В том, что у меня нет идеи построить оператор обновления на основе таблицыкоторый будет определен как ввод для выполнения хранимой процедуры.
Я пытался динамически построить SQL для подготовки UPDATE.
CREATE PROCEDURE os_ssis_update_component
@table varchar(100)
AS
SELECT COLUMN_NAME, IS_NULLABLE, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH into
#kolumny from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME=@table or
TABLE_NAME=UPPER(@table)
select
'using System;
using System.Data... bla bla bla
Теперь я должен создать обновление для указанной таблицы.
UPDATE'+' '+@table+' '+'SET IMIE= ?,NAZWISKO= ? ,NUMER_TELEFONU= ? ,EMAIL=
? ,ULICA= ? ,MIASTO= ? ,STATE= ? ,ZIP_CODE = ? WHERE CUSTOMER_ID= ?
Вопрос в том, как построить это обновление для имени столбцов (это IMIE, NAZWISKO, NUMER_TELEFONU, EMAIL и т. Д.), Которые я найду в таблице, которая будет помещена в качестве ввода.исполнения.
Я немного пробовал использовать функцию pivot и сохранить ее в #table, но мне не нужна никакая агрегатная функция.