DTS--在变量或是在临时表和表变量中使用Input Global Variables

一直以为DTS的Execute SQL Task中不能将Input Global Variables的值赋给变量或是在临时表和表变量中使用, 比如:

declare @cid int
declare @cvalue varchar(20)
set @cid = ?
set @cvalue = ?
delete from CDTemp
where ConditionalID = @cid and conditionalvalue = @cvalue

这样写的话是没有办法设置这两个Input Global Variables的名字的, 因为这段script的parse过不了. 为什么过不了呢? 我 猜 是因为变量是动

态declare的, 而不是DB中已经存在的对象, 因此sql server没有办法确定这段script是否正确.
其实我们可以bypass sqlserver的parse的 :)
我们先写这样一段:
Delete CDTemp
Where ConditionalID = ? and conditionalvalue = ?
然后设置两个Input Global Variables的名字 然后删除这句script, 将上面的那段script  copy进来, 直接OK

事实证明这是可行的
同理, 在临时表和表变量中也可以使用Input Global Variables
eg:
input #Temp (cid, cvalue)
values (?, ?)

posted @ 2009-04-15 18:48  Daniel_Lu  阅读(148)  评论(0编辑  收藏  举报