可以在OLE DB命令中定义变量吗?

时间:2015-02-04 04:15:31

标签: ssis

我定义了一个变量Test,它是@ [User :: Test],字符串值为“abc”。

我的问题是我可以设置更新我的表的sql命令,其中我的列值=我的变量吗?

例如

update tableA set ValueB = '1pm' where ValueA = '" + @[User::Test]  + "'  

但这不适合我。怎么解决?

1 个答案:

答案 0 :(得分:1)

您必须在SQL文本中使用问号并使用查询配置绑定变量(IIRC,它是Parameter Mapping选项卡)。例如,我曾经做过这样的事情:

-- declare vars
declare @table varchar(256);
declare @sql varchar(max);

-- get the table as a parameter
set @table = ?;

-- drop the table if it already exists
if (object_id(@table) is not null) begin;
    set @sql = 'drop table '+@table+';';
    exec(@sql);
end;

-- create the table
set @sql = '
    create table '+@table+' (
        IPID int,
        ...
        _rn int
    );
';
exec(@sql);

在这里,我在Google中找到了一个屏幕截图:https://www.simple-talk.com/iwritefor/articlefiles/1455-SsisVariables_Fig11-620x524.jpg