我正在创建用于自动准备C#组件代码以进行数据迁移的存储过程。您可以在How to execute stored procedure on 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等)建立此更新,我将在表中找到该表并将其作为执行的输入。
我尝试使用数据透视功能,并将其存储在#table中,但是我不需要任何聚合功能。