如何创建表名存储在变量中的表?- SSIS

Joh*_* No 2 sql-server ssis

SSIS 中执行 SQL 任务,我有以下代码:

IF NOT EXISTS(
    SELECT * FROM sys.tables t INNER JOIN sys.schemas s on s.schema_id = 
        t.schema_id 
    WHERE t.name =  'tableName'  AND s.name = 'stg')
BEGIN
    CREATE TABLE [stg].[tableName] (
        Col1 nvarchar(255),
        Col2 nvarchar(1800)
    )
END
Run Code Online (Sandbox Code Playgroud)

如何创建tableName变量以便我可以轻松更改名称?

El.*_*Hum 5

创建一个执行 sql 任务,然后使用直接输入类型在 SqlStatement 中编写此代码:

declare @sch nvarchar(10)   
        ,@tb nvarchar(50)
        ,@query nvarchar(1000)

Set @sch= ?
Set @tb= ?

IF NOT EXISTS(
    SELECT * FROM sys.tables t INNER JOIN sys.schemas s on s.schema_id = 
        t.schema_id 
    WHERE t.name =  @tb  AND s.name = @sch)
BEGIN
 set @query='CREATE TABLE '+@sch+'.'+@tb+' ( Col1 nvarchar(10),Col2 nvarchar(10) )'
 exec sp_executesql @query
END   
Run Code Online (Sandbox Code Playgroud)

然后在参数映射选项卡中使用参数名称 0 和 1(按照代码中的顺序)映射您的变量,
即使您可以使用此解决方案动态创建列。