如何动态构建用于指定表的UPDATE?

时间:2019-05-22 14:34:26

标签: sql sql-server tsql

我正在创建用于自动准备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中,但是我不需要任何聚合功能。

0 个答案:

没有答案